把那就是孩子
问题描述:
使用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>
元素的文本(这是一个孩子一个段落)。
答
使用XPath:
既然你在para
元素节点的上下文中执行的XPath:
选择第一个dmRef
元素:
dmRef[1]
获取前置兄弟文本节点:
dmRef[1]/preceding-sibling::text()
执行XPath将返回一个节点列表。您将不得不遍历它并从每个节点获取文本内容。如果您确定这里只有一个文本节点,您可以将它转换为XPath中的字符串:
string(dmRef[1]/preceding-sibling::text())
谢谢,不知道为什么我忽略了XPath。我在''的节点上使用了一个XPath查找第一个前面的文本()节点: 'preceding-sibling :: text()[1]' 这正是我正在返回的东西,再次感谢指着我在正确的方向。 –
twfurst
2015-02-08 11:57:09