Subject: [xsl] stylesheet not work when xmlns exist From: lee qm <akimilee@xxxxxxxxx> Date: Sat, 26 Sep 2009 08:48:40 +0800 |
I am on xlst 1.0, This is my stylesheet, <xsl:template match="/Request"> <data> <Elem n="{name(.)}"> <xsl:for-each select="@*"> <xsl:if test="name(.)='System'"> <attr n="{name(.)}"> <xsl:element name="val"> <xsl:attribute name="s"> <xsl:value-of select="normalize-space(.)"/> </xsl:attribute> </xsl:element> </attr> </xsl:if> </xsl:for-each> <xsl:apply-templates/> </Elem> </data> </xsl:template> I only want to get the "System" attribute and ignore all the rest. The stylesheet works perfectly fine and generate following output-1 when I use input-1 and input-2 as below. input-1: <?xml version="1.0" encoding="UTF-8"?> <Request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="abc.xsd" System="mysystem"> </Request> input-2: <?xml version="1.0" encoding="UTF-8"?> <Request abc="myabc" System="mysystem"> </Request> output-1: <?xml version="1.0" encoding="utf-8"?> <data> <Elem n="Request"> <attr n="System"> <val s="mysystem"/> </attr> </Elem> </data> THE PROBLEM arise when the input is with xmlns without prefix "xsi", the output that is output-3 as below: input-3: Remove the xsi prefix from xmlns <?xml version="1.0" encoding="UTF-8"?> <Request xmlns="http://www.abc.com" System="mysystem"> </Request> output-3: <?xml version="1.0" encoding="utf-8"?> I have no idea why "xmlns" is causing problem here?
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Help XSL Transformation o, Rajesh Jain | Thread | Re: [xsl] stylesheet not work when , David Carlisle |
Re: [xsl] Use of xsl:apply-template, David Carlisle | Date | Re: [xsl] stylesheet not work when , David Carlisle |
Month |