我有一个以下面提到的格式的Web服务响应。我使用xpath查找根元素< returnObjs >在骡子内为转型目的。有没有办法查找根元素< returnObjs >以这种方式< newElement >元素永远不会在xpath查找中被拾取? 请注意< returnObjs >是< returnObj >的列表类型,因此可能有多个< returnObj >可能/不具有< newElement >的对象其中的元素。
<ns2:root>
<returnObjs>
<!-- 1 or more repititions -->
<returnObj>
<EL1>A</EL1>
<EL2>B</EL2>
<Top>
<TopEl1>data1</TopEl1>
<TopEl2>data2</TopEl2>
<TopEl3>data3</TopEl3>
<newElement>new value</newElement>
<Nested>
<Nested1el1>val1</Nested1el1>
<Nested1el2 />
<Nestedel3>val2</Nestedel3>
<Nestedel4>val3</Nestedel4>
</Nested>
</Top>
</returnObj>
<returnObjs>
</ns2:root>
注意:我正在评估/ root / * [not(newElement)]但到目前为止它还没有为我工作。
答案 0 :(得分:1)
没有。 XPath是从XML树中选择节点的工具 - 它可以选择特定的returnObj
或不选择它,但它不能修改元素的内容。
您需要一个转换工具,例如XSLT,以便根据传入的文档构建一个新的XML文档,并删除所需的元素。
答案 1 :(得分:0)
如果要选择所有元素,但newElement使用xpath
/*[name() != "newElement"]