Transformation XSLT XML avec des espaces de noms
Je suis en train de transformer certains XML en HTML à l'aide de XSLT.
Problème:
Je ne peux pas le faire fonctionner. Quelqu'un peut-il me dire ce que je fais mal?
XML:
<ArrayOfBrokerage xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.test.com/">
<Brokerage>
<BrokerageID>91</BrokerageID>
<LastYodleeUpdate>0001-01-01T00:00:00</LastYodleeUpdate>
<Name>E*TRADE</Name>
<Validation i:nil="true" />
<Username>PersonalTradingTesting</Username>
</Brokerage>
</ArrayOfBrokerage>
XSLT:
<xsl:stylesheet version="1.0" xmlns="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="/ArrayOfBrokerage">
<xsl:for-each select="Brokerage">
Test
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Vous devez vous connecter pour publier un commentaire.
Vous devez fournir un préfixe d'espace de noms dans votre xslt pour les éléments que vous sont en train de transformer. Pour une raison quelconque (au moins dans une Java JAXP parser) vous ne pouvez pas simplement déclarer l'espace de noms par défaut. Cela a fonctionné pour moi:
Cela va attraper tout ce qui est espace de noms dans votre document XML.
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xpath-default-namespace="http://example.com/some-namespace"> ...
Comment voulez-vous exécuter la transformation? Peut-être que vous avez oublié de lier la feuille de style XSLT pour document XML à l'aide:
au début du document XML. Plus d'explications ici.