Ich habe ein XML von einem unserer "Legacy" -Systeme. Ich möchte das ExtLineNum-Tag entfernen, aber es befindet sich nicht im Stammverzeichnis.Entfernen Sie XML-Tag auf einem Unterknoten
Ich habe den XML-Code für mein Beispiel gestrippt:
<?xml version="1.0" encoding="utf-8"?><ns0:Envelope xmlns:ns0="http://schemas.microsoft.com/dynamics/2008/01/documents/Message"><ns0:Header><ns0:MessageId>{F2BCADA1-AC26-4A0C-BA44-11D75E249150}</ns0:MessageId><ns0:SourceEndpointUser>du.msad\btshostinstance</ns0:SourceEndpointUser><ns0:SourceEndpoint>EDI</ns0:SourceEndpoint><ns0:DestinationEndpoint>JWR</ns0:DestinationEndpoint><ns0:Action>http://schemas.microsoft.com/dynamics/2008/01/services/SalesOrderService/create</ns0:Action><ns0:ConversationId /><ns0:RequestMessageId /></ns0:Header><ns0:Body><ns0:MessageParts><SalesOrder xmlns="http://schemas.microsoft.com/dynamics/2008/01/documents/SalesOrder" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SalesTable class="entity">
<ActionCode></ActionCode>
<SalesLine class="entity">
<ExtLineNum></ExtLineNum>
</SalesLine>
</SalesTable>
</SalesOrder></ns0:MessageParts></ns0:Body></ns0:Envelope>
Ich habe versucht:
<xsl:stylesheet version="1.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="ExtLineNum"/>
</xsl:stylesheet>
Aber das hat nicht geklappt .. Denken, es ist eine einfache Frage, aber ich kann Ich finde die Antwort nicht?
Dank im Voraus,
Mike
Was war das Ergebnis der Aktion, die Sie versucht? –
Hallo Wilko, Quelle: Ergebnis: nicht 'touch' den Tag denke ich? –
Siehe: http://stackoverflow.com/questions/34758492/xslt-transform-doesnt-work-until-i-remove-root-node/34762628#34762628 –