2009-07-28 102 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有用

希望这有助于