2013-03-07 31 views
3

說我有這樣的XML:XPath只返回特定的子節點,但與父 - 可能嗎?

<Entity> 
    <Record name="My Record 1" id="3a41b5c1-2462-e211-8a1c-005056b02dd2" count="1"> 
     <Data name="ec_name" value="My Name 1" linked="false" /> 
     <Data name="ec_allteams" value="100000000" linked="false" /> 
     <Data name="ec_teamtype" value="100000001" linked="false" /> 
    </Record> 
    <Record name="My Record 2" id="3a41b5c1-2462-e211-8a1c-005056b02dd3" count="2"> 
     <Data name="ec_name" value="My Name 2" linked="false" /> 
     <Data name="ec_allteams" value="100000002" linked="false" /> 
     <Data name="ec_teamtype" value="100000003" linked="true" /> 
    </Record> 
    <Record name="My Record 3" id="3a41b5c1-2462-e211-8a1c-005056b02dd4" count="3"> 
     <Data name="ec_name" value="My Name 3" linked="false" /> 
     <Data name="ec_allteams" value="100000004" linked="false" /> 
     <Data name="ec_teamtype" value="100000005" linked="false" /> 
    </Record> 
</Entity> 

會是什麼的XPath僅返回那裏掛=「真」記錄+數據的子節點?例如,我想要得到以下結果:

<Record name="My Record 2" id="3a41b5c1-2462-e211-8a1c-005056b02dd3" count="2"> 
     <Data name="ec_teamtype" value="100000003" linked="true" /> 
    </Record> 

這在XPath中可能嗎?

回答

3

這是不可能得到完全如此,但你可以得到的數據節點,然後讀取它的父:

數據節點:/Entity/Record/Data[@linked='true']

包含孩子掛=真實記錄節點:/Entity/Record[Data/@linked='true']

+0

子節點。 – AshesToAshes 2013-03-07 15:40:13

0

獲得其中連接=真

//Data[@linked='true'] 

獲取父所有的數據節點,其中連接=真

//Data[@linked='true']/.. 

這將返回兩個父母和我想象的那麼:(您的建議由於已鏈接=真

//Data[@linked='true']//parent 
相關問題