2015-06-12 100 views
0

我以下述格式提供了Web服務響應。爲了轉換目的,我使用xpath來查找mule內的根元素< returnObjs>。有沒有辦法查找根元素< returnObjs>以這種方式,< newElement>元素永遠不會在xpath查找中被拾取? 請注意:< returnObjs>是< returnObj>類型的列表,所以有可能是可以/不可以有< 爲newElement多個< returnObj>對象>在它的元素。通過mule-esb轉換中的XPath從選擇中排除特定元素

<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

你提到爲newElement屬性,但我只看到爲newElement作爲一個元素,而不是一個屬性 – NicoE

+0

所有的元素。 – MemeMe

回答

1

編號XPath是一個工具,用於從XML樹中選擇節點 - 它可以選擇特定的returnObj或不選擇它,但它不能修改元素的內容。

您需要一個轉換工具(如XSLT)才能基於傳入的XML文檔構建新的XML文檔,並刪除所需的元素。

0

如果你想選擇所有元素,但爲newElement使用XPath的

/*[name() != "newElement"]