|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: How do I access the nodeset that the IDREF refers
Hi,
You want to define a top level key on your subnode using the id attribute:
<xsl:key name="subnodes" match="subnode" use="@id"/>
Then in a template you can simply:
<xsl:template match="link">
<xsl:apply-template select="key('subnodes', @idr)"/>
</xsl:template>
best,
-Rob
> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of bix xslt
> Sent: Wednesday, January 08, 2003 2:26 PM
> To: XSL-List@xxxxxxxxxxxxxxxxxxxxxx
> Subject: How do I access the nodeset that the IDREF refers to?
>
>
> Hi all,
>
> I'm not sure if I simply didn't use the right words, or I couldn't find the
> right combination of words, but I have not quite found the answer to my
> question in the FAQ or the archives.
>
> Given a DTD similar to this:
>
> <!ELEMENT root (subnode)*>
> <!ELEMENT subnode (link)*>
> <!ELEMENT link EMPTY>
>
> <!ATTLIST subnode
> id ID #REQUIRED>
>
> <!ATTLIST link
> idr IDREF #REQUIRED>
>
> What I would like to know is how I can access the nodeset of the subnode
> element listed within the link element. An example xml file might be:
>
> <root>
> <subnode id="a" />
> <subnode id="b">
> <link idr="c" />
> <link idr="d" />
> </subnode>
> <subnode id="c">
> <link idr="e">
> </subnode>
> <subnode id="d" />
> <subnode id="e" />
> </root>
>
>
> An application might be to sort the list of four subnodes (a,b,c,d) based on
> their links. An algorithm might be:
> 1. for every not(subnode/link), display subnode id
> 2. for every (subnode/link)
> 2a. choose
> when link reference node contains link
> repeat step 2 with link reference node
> otherwise
> if link reference has not been displayed
> display link reference id
> 2b. display subnode id
>
>
> My question is essentially: how would I create a variable that contains the
> nodeset of the link reference? First I would need it to test the link to
> determine if the link itself had links. Next I would want to pass that link
> back into step two so that I could query its links.
>
> Would the following XSL be something close?
>
> <xsl:variable name="linkRef">
> <xsl:value-of select="id(subnode/link[@idr])" />
> </xsl:variable>
>
>
> Thanks in advance!
> Bix
>
> _________________________________________________________________
> The new MSN 8 is here: Try it free* for 2 months
> http://join.msn.com/?page=dept/dialup
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
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








