ein XML-Kopieren:Namespaces Umgehen während mit XSLT
<Root>
<A>foo</A>
<B></B>
<C>bar</C>
</Root>
Ich beantrage eine XSLT das 'C' Element zu entfernen:
<?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>
und ich am Ende mit dem folgenden XML (es ist OK ‚B‘ nicht zusammengebrochen zu haben, weil ich HTML als Ausgabemethode verwenden bin):
<Root>
<A>foo</A>
<B></B>
</Root>
Aber dann, wenn ich e Ver erhält eine andere XML, diesmal mit einem Namensraum:
<Root xmlns="http://company.com">
<A>foo</A>
<B></B>
<C>bar</C>
</Root>
Das Element 'C' wird nach dem XSLT-Prozess nicht entfernt.
Was kann ich tun, um diesen Namensraum zu umgehen, gibt es einen Weg?
Was für die Erklärung der der Grund ist "http://www.w3.org/1999/XSL/Transform" Namespace zweimal in deinem? Die Standard-Namespace-Deklaration sollte entfernt werden, IMHO. –
Tomalak
Es gibt eigentlich keinen Grund, mein Schlechter. –