Xpath或Xquery忽略任何类型的命名空间前缀

问题描述 投票:-2回答:1

我有SOAP响应,我正在检索它的一部分,那部分看起来像

<ns4:discounts>
      <ns4:discount code=‘ABC’ description=‘Hello World’ /> </ns4:discounts>

但我需要的是(例如wihout名称空间前缀)

<discounts>
      <discount code=‘ABC’ description=‘Hello World’ />
</discounts>

如何使用xquery或xpath获取此信息?正如我已经提到的,我从SOAP响应中得到折扣(这里没有包含)

请帮忙,谢谢。

java xpath soap xquery
1个回答
0
投票

如果输入节点位于命名空间中,则任何简单地从输入中选择节点的查询将返回命名空间中的节点。如果你想要没有名称空间的节点,那么你需要转换输入而不是简单地从中选择,你可以在XQuery中做,但不能在XPath中做。 (并且您可以在XSLT中更轻松地完成它。)基本上,您必须通过树的递归遍历来重构XML,其中通过重命名旧节点来形成新节点。

© www.soinside.com 2019 - 2024. All rights reserved.