Subject: [xsl] Re: namespace change, what am I missing here? From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx> Date: Sun, 29 Jun 2003 10:10:09 +0200 |
This is probably a bug. With MSXML3, MSXML4, Saxon 6.5.2, Xalan C 1.5, .Net xslTransform (nXSLT command-line utility), JD, and 4XSLT I get this correct result: <?xml version="1.0" encoding="utf-8"?> <rss xmlns="foo" version="2.0"> <channel> <title>Werblog</title> <link>http://werbach.com/blog/</link> </channel> </rss> ===== Cheers, Dimitre Novatchev. http://fxsl.sourceforge.net/ -- the home of FXSL "S Woodside" <sbwoodside@xxxxxxxxx> wrote in message news:CA9A6736-AA01-11D7-A93E-000393414368@xxxxxxxxxxxx > Hi, > > I've got a stylesheet renamespace.xsl, that is intended to take an > arbitrary XML file and change the namespace (no matter what it is) into > an arbitrary new namespace. It's based on the FAQ. Both the location of > the file and the new namespace are parameters. But when I run it > through my script (it's all below) I get the namespace applied to all > the child nodes but NOT the root node. Why not?? > > Here's what I did: > > %%%%%%%% xsltproc -V > Using libxml 20506, libxslt 10030 and libexslt 720 > xsltproc was compiled against libxml 20506, libxslt 10030 and libexslt > 720 > libxslt 10030 was compiled against libxml 20506 > libexslt 720 was compiled against libxml 20506 > > %%%%%%%% cat renamespace.xsl > <?xml version="1.0" encoding="UTF-8"?> > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > > > > <xsl:param name="location"/> > <xsl:param name="new_namespace"/> > > <xsl:template match="/"> > <xsl:message>re_namespace'ing</xsl:message> > <!--<wrapper>--> > <xsl:choose> > <xsl:when test="$location != ''"> > <xsl:apply-templates select="document($location)/node()" > mode="renamespace"/> > </xsl:when> > <xsl:otherwise> > <xsl:apply-templates mode="renamespace"/> > </xsl:otherwise> > </xsl:choose> > <!--</wrapper>--> > </xsl:template> > > <xsl:template match="*" mode="renamespace"> > <xsl:element > name="{local-name()}" > namespace="{$new_namespace}"> > <xsl:copy-of select="@*"/> > <xsl:apply-templates mode="renamespace"/> > </xsl:element> > </xsl:template> > > </xsl:stylesheet> > > %%%%%%%% cat test.orig.xml > <?xml version="1.0"?> > <rss version="2.0"> > <channel> > <title>Werblog</title> > <link>http://werbach.com/blog/</link> > > </channel> > </rss> > > %%%%%%%% xsltproc --stringparam "new_namespace" "foo" \ > renamespace.xsl test.orig.xml > <?xml version="1.0"?> > <rss xmlns:ns2="foo" version="2.0"> > <ns2:channel> > <ns2:title>Werblog</ns2:title> > <ns2:link>http://werbach.com/blog/</ns2:link> > > </ns2:channel> > </rss> > > > **** > > I would expect to get this: > > <?xml version="1.0"?> > <ns2:rss xmlns:ns2="foo" version="2.0"> > <ns2:channel> > <ns2:title>Werblog</ns2:title> > <ns2:link>http://werbach.com/blog/</ns2:link> > > </ns2:channel> > </rss> > > > (i'm also not sure where the "ns2" is from but that doesn't matter to > me.) > > simon > > -- > www.simonwoodside.com -- 99% Devil, 1% Angel > > > 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] namespace change, what am I m, S Woodside | Thread | Re: [xsl] Re: namespace change, wha, S Woodside |
[xsl] namespace change, what am I m, S Woodside | Date | RE: [xsl] set:intersection oddity, Michael Kay |
Month |