Xpath或Xquery忽略任何类型的命名空间前缀
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Xpath或Xquery忽略任何类型的命名空间前缀相关的知识,希望对你有一定的参考价值。
我有SOAP响应,我正在检索它的一部分,那部分看起来像
<ns4:discounts>
<ns4:discount code=‘ABC’ description=‘Hello World’ /> </ns4:discounts>
但我需要的是(例如wihout名称空间前缀)
<discounts>
<discount code=‘ABC’ description=‘Hello World’ />
</discounts>
如何使用xquery或xpath获取此信息?正如我已经提到的,我从SOAP响应中得到折扣(这里没有包含)
请帮忙,谢谢。
答案
如果输入节点位于命名空间中,则任何简单地从输入中选择节点的查询将返回命名空间中的节点。如果你想要没有名称空间的节点,那么你需要转换输入而不是简单地从中选择,你可以在XQuery中做,但不能在XPath中做。 (并且您可以在XSLT中更轻松地完成它。)基本上,您必须通过树的递归遍历来重构XML,其中通过重命名旧节点来形成新节点。
以上是关于Xpath或Xquery忽略任何类型的命名空间前缀的主要内容,如果未能解决你的问题,请参考以下文章
XPath / XQuery:在节点中查找文本,但忽略特定后代元素的内容