2015-02-07 27 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

相关问题