[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

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

Subject: RE: retrieving a piece of data from a different xml file
From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx>
Date: Wed, 02 Aug 2000 00:01:19 +0100
retrieving attributes from 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@xxxxxxxxxxxxxxxx


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


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.