2015-02-07 32 views
0

使用Java之前父節點的字符串內容,我試圖找出如何檢索父節點的字符串,最長的子節點的開頭:把那就是孩子

<para>This is a paragraph with a child <dmRef><dmRefIdent><dmCode att="somevalue"/></dmRefIdent></dmRef> and then some more text.</para> 

我想在開始之前分析文本。

我已經檢索使用node.getParent.getTextContent()完整的字符串,其中node<dmRef>元素,但我在尋找一種方式來獲得僅前<dmRef>元素的文本(這是一個孩子一個段落)。

回答

1

使用XPath:

既然你在para元素節點的上下文中執行的XPath:

選擇第一個dmRef元素:

dmRef[1]

獲取前置兄弟文本節點:

dmRef[1]/preceding-sibling::text()

執行XPath將返回一個節點列表。您將不得不遍歷它並從每個節點獲取文本內容。如果您確定這裏只有一個文本節點,您可以將它轉換爲XPath中的字符串:

string(dmRef[1]/preceding-sibling::text()) 
+0

謝謝,不知道爲什麼我忽略了XPath。我在''的節點上使用了一個XPath查找第一個前面的文本()節點: 'preceding-sibling :: text()[1]' 這正是我正在返回的東西,再次感謝指着我在正確的方向。 – twfurst 2015-02-08 11:57:09

相關問題