|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: mapping attributes.
Jamie wrote:
> I have an XML document, like so:
>
> <DOCUMENT>
> <SECTION ID="SOME_ID">
> <TITLE>This sections title</TITLE>
> <BODY />
> <RELATED ID="ANOTHER" />
> </SECTION>
> <SECTION ID="ANOTHER">
> <TITLE>Another sections title</TITLE>
> <BODY />
> <RELATED ID="SOME_OTHER" />
> </SECTION>
> </DOCUMENT>
>
> For each section, I want to produce a cross reference to related sections,
> like so:
>
> See Also:
> <A HREF="#ANOTHER">Another sections title</A>
>
>
> The "#ANOTHER" is easy to get, but the link text isn't. This works:
>
> [...]
>
> <xsl:for-each select="SECTION[@ID={RELATED/@ID}]/TITLE"> but it doesn't find
> anything.
If you are currently processing a SECTION element then you need to go back
up a level to see the other SECTION element siblings of the current node.
<xsl:template match="SECTION">
<xsl:value-of select="concat('Title: ',TITLE)"/>
<xsl:variable name="thisID" select="@ID"/>
<xsl:for-each select="../SECTION[RELATED/@ID=$thisID]">
<br/>
<xsl:value-of select="concat('Related Title: ',TITLE)"/>
</xsl:for-each>
<br/><br/>
</xsl:template>
You could also use keys.
- Mike
____________________________________________________________________
Mike J. Brown, software engineer at My XML/XSL resources:
webb.net in Denver, Colorado, USA http://www.skew.org/xml/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








