|
Subject: RE: [xsl] How do I access the nodeset that the IDREF refers to? From: "Robert Koberg" <rob@xxxxxxxxxx> Date: Wed, 8 Jan 2003 15:02:39 -0800 |
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: [xsl] 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
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] How do I access the nodeset t, bix xslt | Thread | Re: [xsl] How do I access the nodes, Wendell Piez |
| [xsl] How do I access the nodeset t, bix xslt | Date | Re: [xsl] How do I access the nodes, Wendell Piez |
| Month |