Dies ist mein XML mit SOAP-Header und Körper:XSLT - Löschen Präfixnamensraum bestimmten Knoten XML
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<RequestResponse xmlns="http://tempuri.org/">
<a:RequestResult xmlns:a="http://schemas.datacontract.org/2004/07/MockupTesting"
xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:Message>Message text testing.</a:Message>
<a:Response>false</a:Response>
</a:RequestResult>
</RequestResponse>
</s:Body>
</s:Envelope>
ich müssen vom RequestResult
Knoten nur das Präfix löschen. Daraus
<a:RequestResult xmlns:a="http://schemas.datacontract.org/2004/07/MockupTesting"
xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
An:
<RequestResult xmlns:a="http://schemas.datacontract.org/2004/07/MockupTesting"
xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
Dies ist die XSLT
Konfigurationsdatei, die ich mit der Version 2 verwenden:
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes" />
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*" />
</xsl:copy>
</xsl:template>
<xsl:template match="/">
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<xsl:apply-templates />
</s:Body>
</s:Envelope>
</xsl:template>
<xsl:template match="RequestResult |RequestResult//*">
<xsl:element name="a:{name()}"
namespace="http://schemas.datacontract.org/2004/07/Testing">
<xsl:namespace name="a"
select="'http://schemas.datacontract.org/2004/07/MockupTesting'" />
<xsl:namespace name="i"
select="'http://www.w3.org/2001/XMLSchema-instance'" />
<!-- <xsl:copy-of select="namespace::*" /> -->
<xsl:apply-templates select="node()|@*" />
</xsl:element>
</xsl:template>
</xsl:stylesheet>
Was sollte ich hinzufügen oder ändern, dass zu entfernen Präfix auf diesem Knoten?
Sie können nicht „löschen“ ein Namespacepräfix und in den allermeisten Fällen muss man so etwas nicht machen. Kannst du erklären, warum du denkst, dass es in deinem Fall notwendig ist? – Tomalak
Da die WSDL, die ich konsumiere, benötigt @Tomalak – gtx911
Sorry, das ist keine befriedigende Erklärung. Ich fragte: "Warum brauchst du es?" und du hast geantwortet "Weil ich es brauche." Ich denke, Sie müssen einen besseren Grund dafür geben. – Tomalak