在mule-esb转换中通过XPath排除选择中的特定元素

时间:2015-06-12 18:20:46

标签: xpath mule

我有一个以下面提到的格式的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)]但到目前为止它还没有为我工作。

2 个答案:

答案 0 :(得分:1)

没有。 XPath是从XML树中选择节点的工具 - 它可以选择特定的returnObj或不选择它,但它不能修改元素的内容。

您需要一个转换工具,例如XSLT,以便根据传入的文档构建一个新的XML文档,并删除所需的元素。

答案 1 :(得分:0)

如果要选择所有元素,但newElement使用xpath

/*[name() != "newElement"]
相关问题