Bix,
Assuming your XSLT processor is respecting the declarations in your DTD, I
bet you'd find in your effort:
<xsl:variable name="linkRef">
<xsl:value-of select="id(subnode/link[(_at_)idr])" />
</xsl:variable>
changing id(subnode/link/@idr) will work better for you (those link
elements don't actually have content so the id() function is getting no
argument ... from anyone ...)...
... but I bet
<xsl:variable name="linkRef" select="id(subnode/link/@idr)"/>
would work even better (it binds the retrieved nodes to the variable, not
the string value of the first one).
I hope that helps,
Wendell
At 05:25 PM 1/8/2003, you wrote:
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[(_at_)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
======================================================================
Wendell Piez
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc. http://www.mulberrytech.com
17 West Jefferson Street Direct Phone: 301/315-9635
Suite 207 Phone: 301/315-9631
Rockville, MD 20850 Fax: 301/315-8285
----------------------------------------------------------------------
Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list