Be advised though, that doesn't always work ... at least maybe not in the
way you think. I guess it depends on which "document" root node you need.
If you've constructed xml within a variable, lets say, and then you
apply-templates on that given instance, xpathing--within context--to "/"
will take you to the root of the xml "document" within that given variable.
What I mean by "within context" is operations conducted on/within the
context node. For example, if you xpath to "/" within a predicate or a
for-each that's is operating on the context node.
To get around this, what I do is pre-load a "this" variable at "global"
scope with "/" ... or, you could do it locally--but, I don't think that
makes sense if you plan to access that path within multiple/separate code
paths.
To illustrate what I'm babbling about:
xml:
<xml/>
xsl:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<xsl:output method="text"/>
<xsl:variable name="this" select="/"/>
<xsl:template match="/">
<xsl:variable name="my-instance">
<node/>
</xsl:variable>
<xsl:apply-templates select="msxsl:node-set($my-instance)/node"/>
</xsl:template>
<xsl:template match="node">
context "/" name: <xsl:value-of select="name(/*[1])"/>;
global "/" name : <xsl:value-of select="name($this/*[1])"/>;
</xsl:template>
</xsl:stylesheet>
Anyhow, this may not be an issue for you.
-Jeff
-----Original Message-----
From: Jarno(_dot_)Elovirta(_at_)nokia(_dot_)com
[mailto:Jarno(_dot_)Elovirta(_at_)nokia(_dot_)com]
Sent: Thursday, July 24, 2003 6:02 AM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] Getting the root element.
Hi,
Q:
When deep within the structure (In my case recursing down a
branch) what it
the most elegent way of getting the document root node?
/
Cheers,
Jarno - Covenant: Bullet (Club Version)
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list