Reputation: 975
I've read a lot of examples about ignore namespaces but can't seem to bring this concept to fruition inside template match.
Here's my sample xml:
<?xml version="1.0"?>
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<Response xmlns:ResB="http://www.aaa.com/v1" xmlns:dpconf="http://www.datapower.com/param/config" xmlns:exsl="http://xmlns.opentechnology.org/xslt-extensions/common" xmlns="http://www.aaa.com/v2">
<Status>
<Code>00000</Code>
</Status>
</Response>
</soapenv:Body>
</soapenv:Envelope>
And I can't have the namespace in the ouptut. Here's an example of the desired output:
<A>
<Transformed>0000</Transformed>
</A>
This isn't outputting my nodes, so how can I have an xslt to match the Response node and work off of that?
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="//*[local-name() = 'Response']">
<A>
<Transformed><xsl:value-of select="Status/Code"/></Transformed>
</A>
Upvotes: 3
Views: 13662
Reputation: 338416
Why would you want to ignore the namespace? Just declare it and use it.
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:v2="http://www.aaa.com/v2"
exclude-result-prefixes="v2"
>
<xsl:template match="v2:Response">
<A>
<Transformed>
<xsl:value-of select="v2:Status/v2:Code" />
</Transformed>
</A>
</xsl:template>
</xsl:stylesheet>
Upvotes: 9