hinzufügen Ich habe ein Problem.Wie Namespace-Element mit XSLT
Element Response muss ohne Namespaces sein (sie sind definiertes Root-Element).
Eingang XSLT:
<xsl:stylesheet
xpath-default-namespace="http://www.iata.org/IATA/EDIST"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:h="http://www.iata.org/IATA/EDIST"
version="1.0"
>
<xsl:template match="h:Response[not(h:OrderViewProcessing)]">
<Response xmlns="http://www.iata.org/IATA/EDIST">
<OrderViewProcessing>
<MarketingMessages>
<MarketingMessage>
<Text>
Error text
</Text>
</MarketingMessage>
</MarketingMessages>
</OrderViewProcessing>
<xsl:apply-templates/>
</Response>
</xsl:template>
</xsl:stylesheet>
Output XML:
<Response xmlns:h="http://www.iata.org/IATA/EDIST"
namespace="http://www.iata.org/IATA/EDIST">
<OrderViewProcessing>
<MarketingMessages>
<MarketingMessage>
<Text>
Error Text
</Text>
</MarketingMessage>
</MarketingMessages>
</OrderViewProcessing>
</Response>
I wie XML benötigen:
<Response>
<OrderViewProcessing>
<MarketingMessages>
<MarketingMessage>
<Text>
Error Text
</Text>
</MarketingMessage>
</MarketingMessages>
</OrderViewProcessing>
</Response>
Wenn Sie Xmlns entfernen = "http://www.iata.org/IATA/EDIST" in XSLT, dann xmlns = "" in XML wird leer.
aktualisieren
Dieses Problem auf diese Weise gelöst:
<xsl:template match="h:Response[not(h:OrderViewProcessing)]">
<xsl:element name="Response" namespace="http://www.iata.org/IATA/EDIST">
<xsl:element name="OrderViewProcessing" namespace="http://www.iata.org/IATA/EDIST">
<xsl:element name="MarketingMessages" namespace="http://www.iata.org/IATA/EDIST">
<xsl:element name="MarketingMessage" namespace="http://www.iata.org/IATA/EDIST">
<xsl:element name="Text" namespace="http://www.iata.org/IATA/EDIST">
Error text
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:element>
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
Wahrscheinlich muss, Lösung besser sein.
Das Präfix "apim" befindet sich nicht in Ihrem XSLT, daher muss es aus Ihrer XML-Eingabe stammen. Wir müssen die Eingabe-XML sehen, um herauszufinden, woher die einzelnen Namespaces kommen und in welchem Kontext sich das jeweilige Element befindet. –