|
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 |