2

次の形式のXMLがあります

<Body xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://schemas.xmlsoap.org/soap/envelope/">
  <TransactionAcknowledgement xmlns="">
    <TransactionId>HELLO </TransactionId>
    <UserId>MC</UserId>
    <SendingPartyType>SE</SendingPartyType>
  </TransactionAcknowledgement>
</Body>

XQueryまたはXPath式を使用したい。

今、私だけを削除したい

xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"

xml からの名前空間。

それを達成する方法はありますか?

ありがとう

4

1 に答える 1

0

functx:change-element-ns-deepを使用してみてください:

let $xml := <Body xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://schemas.xmlsoap.org/soap/envelope/">
  <TransactionAcknowledgement xmlns="">
    <TransactionId>HELLO </TransactionId>
    <UserId>MC</UserId>
    <SendingPartyType>SE</SendingPartyType>
  </TransactionAcknowledgement>
</Body>

return functx:change-element-ns-deep($xml, "http://schemas.xmlsoap.org/soap/envelope/", "")

ただし、Dimitre Novatchevが述べたように、この関数はソースxmlの名前空間を変更しないため、新しいXMLを作成します。

于 2012-09-02T18:08:06.553 に答える