У меня есть xml из одной из наших «устаревших» систем. Я хочу удалить тег ExtLineNum, но он не находится в корне.Удалить тег xml на дополнительном узле
Я раздел XML для моего примера:
<?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>
Я попытался:
<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>
Но это не сработало .. Угадайте, что это простой вопрос, но я не могу Найти ответ?
Спасибо заранее,
Майк
Каков был результат действия вы пробовали? –
Привет Wilko, Источник: Результат: ли не 'прикосновение' тег я думаю? –
См. Http://stackoverflow.com/questions/34758492/xslt-transform-doesnt-work-until-i-remove-root-node/34762628#34762628 –