xsl-list
[Top] [All Lists]

baffled by <xsl:template match="/">

2004-05-11 10:07:01
In Michael Kay's book, XSLT Programmer's Reference - 2nd Edition, the top of
page 75 says that the pattern "/" matches the root node.  I have always been
baffled by this, because I have never seen "/" match the root node when
using <xsl:template match="/">.  

For instance, just using this XLM:

<root>
</root>

and the following XSL 

----------------------------------------
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<xsl:template match="/">
        Match = "/" -
        <xsl:value-of select="name()"/>
</xsl:template>
</xsl:stylesheet>

Output:

<?xml version="1.0" encoding="UTF-16"?>
        Match = "/" -
----------------------------------------

and

----------------------------------------
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<xsl:template match="*">
        Match = "/*"
        <xsl:value-of select="name()"/>
</xsl:template>
</xsl:stylesheet>

Output:

<?xml version="1.0" encoding="UTF-16"?>
        Match = "/*"
        root
----------------------------------------

This would appear to me that an implicit root node of 
<?xml version="1.0" encoding="UTF-16"?> is actually the root.

What am I missing?

By the way, this is using MSXML4 and .NET XslTransform



<Prev in Thread] Current Thread [Next in Thread>