2016-02-26 67 views
1

我有一個xml文件,我想要搜索一個詞說searchTearm,然後想要返回該搜索項周圍標籤的名稱。 例如: - 在下面的例子中,searchTerm被標籤namespace,querySubject和queryItem包圍,我試圖返回這些標籤的名稱。名稱包含在名稱標籤中。用於xml搜索的Xpath

使用單線的XPath任何幫助這個:

<namespace> 
    <name locale="en">Test</name> 
    <lastChanged>2016-01-12T12:42:46</lastChanged> 
     <namespace><name locale="en">Database Layer</name> 
      <querySubject status="valid"><name locale="en">qsxyz</name> 
       <queryItem><name locale="en">qixyz</name> 
        <>...searchTerm..</> 
       </queryItem> 
      </querySubject> 
     </namespace> 
</namespace> 

下面的XPath似乎不工作: -

/namespace/namespace/querysubject/queryItem[contains(., 'searchTerm')] 
+0

月1日,XPath是大小寫敏感的,所以'.../querySubject/...' – splash58

回答

1

如果我理解正確的

/namespace/namespace/querySubject/queryItem[contains(., 'searchTerm')]/ancestor-or-self::*/name 

選擇name所有祖先的標籤queryItemsearchTerm

結果

Element='<name locale="en">Test</name>' 
Element='<name locale="en">Database Layer</name>' 
Element='<name locale="en">qsxyz</name>' 
Element='<name locale="en">qixyz</name>' 

如果您添加尾隨/text()您將收到不元素,但有值

+0

它只給予第一個元素名稱即。 Element ='測試'我想要其他三個 – user2816085

+0

http://www.utilities-online.info/xpath/?save=099ff09f-c3d5-415e-9bf6-00a40cbef7d3-xpath – splash58

+0

非常感謝@ splash58然後我的代碼無法處理數據.....我猜 – user2816085