XSLT Transform XML with Namespaces XSLT Transform XML with Namespaces xml xml

XSLT Transform XML with Namespaces


You need to provide a namespace prefix in your xslt for the elements you are transforming. For some reason (at least in a Java JAXP parser) you can't simply declare a default namespace. This worked for me:

<xsl:stylesheet version="1.0" xmlns:t="http://www.test.com/" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xslFormatting="urn:xslFormatting">    <xsl:output method="html" indent="no"/>    <xsl:template match="/t:ArrayOfBrokerage">        <xsl:for-each select="t:Brokerage">            Test        </xsl:for-each>    </xsl:template></xsl:stylesheet>

This will catch everything that is namespaced in your XML doc.


How do you execute the transformation? Maybe you forgot to link the XSLT stylesheet to XML document using:

<?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?>

at the beginning of XML document. More explanation here.