2009-07-28 128 views
1

我似乎無法抓住這個特定的節點。XPath搜索問題

<w:body> 
    <w:p wsp:rsidR="00D12EE7" wsp:rsidRDefault="00F86B09"> 
     <w:fldSimple w:instr=" MERGEFIELD GAS_REAFCity "> 
     <w:r> 
      <w:rPr> 
      <w:noProof/> 
      </w:rPr> 
      <w:t>«GAS_REAFCity»</w:t> 
     </w:r> 
     </w:fldSimple> 
    </w:p> 
</w:body> 

我試圖能得到儘可能接近// w ^:P/W:fldSimple 但如何選擇寬:INSTR = 「MERGEFIELD GAS_REAFCity」。

謝謝 感謝任何幫助!

回答

3

不要使用@語法屬性,所以你會選擇@w:instr?

//w:p/w:fldSimple[@w:instr=" MERGEFIELD GAS_REAFCity "] 

XPath Expression Tester

2

你的XPath會搶了元素節點,但是你想要的屬性節點。你的xpath需要像//w:p/w:fldSimple/@w:instr這樣的東西。取決於你使用什麼來評估xpath,你可以使用類似myAttr.getText()的東西,或者,你可以使用string(//w:p/w:fldSimple/@w:instr)

我注意到你的XPath是相對的,這是故意的嗎?最後,有很多用於處理DOM和XPath的優秀框架,並且我知道至少Dom4J將允許您以編程方式遍歷Dom樹,然後您可以查詢將訪問該節點的XPath。

我發現起步時以下tutorial有用

希望這有助於