2012-04-06 79 views
3

我是Java和XPath語法的新手。我有複雜的XML文件。我需要的是選擇所有沒有孩子的節點(我實際上需要它們的值)。Java xpath,選擇最深的子項

<root> 
    <a> 
     <b>text1</b> 
     <c>text2</c> 
    </a> 
    <d> 
     <e> 
      <f>text3</f> 
     </e> 
    </d> 
    <f>text4</f> 
</root> 

我想在此處獲取列表"text1","text2","text3","text4"。你能幫我用xpath表達嗎?謝謝。

回答

7

好吧,這是我需要什麼

root.selectNodes("//*[not(*)]") 
0

如果文檔如上,嘗試//*/text();)

+0

太棒了,它的工作原理!你能不能幫我獲得這些節點的名字? :) – 2012-04-06 13:33:48

+0

哦,實際上它並不完全如我所料。我從每個節點獲取文本,但是我只需要從那些沒有孩子的人那裏得到它。我的意思是,我從,等等那裏得到符號「\ n \ t」。 – 2012-04-06 13:38:14