Es gibt viele Referenzen im Internet, die das gleiche Problem mit mir haben. Es ist das Hinzufügen von Namespace, ich habe das gleiche wie dieses, das ich sah: Adding namespace in inner parent group in xslt v2.0. Aber in meinem Fall habe ich keinen Namespace im Eltern-Tag und füge den Namespace in die innere Level-Gruppe ein. Ich habe versucht, die Lösungen zu kopieren, aber ich kann nicht die erwartete Ausgabe erhalten. Zum Beispiel habe ich diese Beispieldatei,Namespace mit xslt2.0 hinzufügen
INPUT:
<Record>
<Data>
<Section>
<ID>111222</ID>
</Section>
</Data>
</Record>
ERWARTET:
<Record>
<Data>
<Section xmlns="www.hdgd.co">
<ID>111222</ID>
</Section>
</Data>
</Record>
XSLT:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="*">
<xsl:element name="{local-name()}">
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
<xsl:template match="Section">
<Section xmlns="www.hdgd.co">
<xsl:copy-of select="*"/>
</Section>
</xsl:template>
Die generierte Ausgabe hat einen leeren Namespace im ID-Element gefüllt. Und ich muss diese leeren xmlns entfernen. Sehen wie folgt aus:
<Record>
<Data>
<Section xmlns="www.hdgd.co">
<ID xmlns="">111222</ID>
</Section>
</Data>
</Record>
Denke nicht daran, "einen Namespace hinzuzufügen". Stellen Sie sich vor, Sie ändern den Namen des Elements. Wenn Sie die Namen der Elemente richtig angeben, werden die Namespace-Deklarationen für sich selbst sorgen. Der Name eines Elements ist ein Paar (Namespace-URI, lokaler Name). –