Subject: Re: [xsl] Getting the root namespace from the input document From: "Andrew Welch" <andrew.j.welch@xxxxxxxxx> Date: Mon, 5 Feb 2007 16:12:16 +0000 |
On 2/5/07, Andrew Welch <andrew.j.welch@xxxxxxxxx> wrote: > <xsl:template match="/"> > <Metadata> > <xsl:copy-of select="namespace::node()"/> > </Metadata> > </xsl:template>
I think Andrew means:
<xsl:template match="/manifest"> <Metadata> <xsl:copy-of select="namespace::*"/> </Metadata> </xsl:template>
But namespace:: axis is deprecated in XSLT 2.0 (though, Saxon supports it)
If you are using XSLT 2.0, the following is perhaps a portable way:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="xml" indent="yes" />
<xsl:template match="manifest"> <xsl:variable name="x" select="." /> <Metadata> <!-- create namespace declarations --> <xsl:for-each select="in-scope-prefixes($x)"> <xsl:namespace name="{.}"><xsl:value-of select="namespace-uri-for-prefix(., $x)" /></xsl:namespace> </xsl:for-each>
<!-- do rest of things --> </Metadata> </xsl:template>
</xsl:stylesheet>
That's really cool too. This is all news to me - I didn't think the prefixes were available to the XSLT processor...?
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Getting the root namespac, Mukul Gandhi | Thread | Re: [xsl] Getting the root namespac, Florent Georges |
[xsl] Announce: GNU gettext support, Jirka Kosek | Date | Re: [xsl] 99 bottles of beer, Abel Braaksma |
Month |