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 |