我有以下格式的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表达式。
现在我只想删除
来自xml的的xmlns:SOAP-ENV = “http://schemas.xmlsoap.org/soap/envelope/”
命名空间。
有没有办法实现它。
由于
答案 0 :(得分: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。