This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: retrieving a piece of data from a different xml file


Eric,

Chris Bayes wrote:
><xsl:variable name="locs" select="document('pagelocations.xml')">
></xsl:variable>
>
>later
>
><xsl:template match="link">
>	<a>
>		<xsl:atribute name="href"><xsl:value-of
>select="$locs/pagelocations/item[@name = @page]/location" /></xsl:attribute>
>	</a>
></xsl:template>

Just to correct a couple of typos in Chris' solution:

<xsl:template match="link">
  <a>
    <xsl:attribute name="href">
      <xsl:value-of
        select="$locs/pagelocations/item[@name =
current()/@page]/@location" />
    </xsl:attribute>
    <xsl:value-of select="@page" />
  </a>
</xsl:template>

If you don't use current()/@page, then the XSLT processor will try to look
for the 'page' attribute on the context node, which is the 'item' in
pagelocations.xml.  You could alternatively define a variable to hold
information about what the current page is:

<xsl:template match="link">
  <xsl:variable name="page" select="@page" />
  <a>
    <xsl:attribute name="href">
      <xsl:value-of
        select="$locs/pagelocations/item[@name = $page]/@location" />
    </xsl:attribute>
    <xsl:value-of select="@page" />
  </a>
</xsl:template>

The '/location' step selects the 'location' element children of the item
rather than the attributes of the item: you need '/@location' instead.

Without some content (I've used the name of the page), the link won't show
on an HTML page.

You can use:

<xsl:template match="link">
  <a href="$locs/pagelocations/item[@name = current()/@page]/@location">
    <xsl:value-of select="@page" />
  </a>
</xsl:template>

to give the same effect.

I hope that helps,

Jeni

Dr Jeni Tennison
Epistemics Ltd * Strelley Hall * Nottingham * NG8 6PE
tel: 0115 906 1301 * fax: 0115 906 1304 * email: jeni.tennison@epistemics.co.uk


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]