A partir d'un XML avec un espace de noms par défaut:Contourner namespaces lors de la copie d'un fichier XML avec XSLT
<Root>
<A>foo</A>
<B></B>
<C>bar</C>
</Root>
J'applique un XSLT pour supprimer l'élément 'C':
<?xml version="1.0" ?>
<xsl:stylesheet version="2.0" xmlns="http://www.w3.org/1999/XSL/Transform" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="no" encoding="utf-8" />
<xsl:template match="*">
<xsl:copy>
<xsl:copy-of select="@*" />
<xsl:apply-templates />
</xsl:copy>
</xsl:template>
<xsl:template match="C" />
</xsl:stylesheet>
et je finissent par avec le code XML suivant (il est normal d'avoir « B » n'effondré parce que je suis en utilisant HTML comme méthode de sortie):
<Root>
<A>foo</A>
<B></B>
</Root>
Mais si I e ver obtenir un autre XML, cette fois avec un espace de noms:
<Root xmlns="http://company.com">
<A>foo</A>
<B></B>
<C>bar</C>
</Root>
l'élément 'C' n'est pas supprimé après le processus XSLT.
Que puis-je faire pour ignorer cet espace de noms, existe-t-il un moyen?
Quelle est la raison de déclarer l'espace de noms "http://www.w3.org/1999/XSL/Transform" deux fois dans votre? La déclaration d'espace de noms par défaut doit être supprimée, à mon humble avis. –
Tomalak
Il n'y a pas de raison en fait, ma mauvaise. –