相关疑难解决方法(0)

XPath包含(text(),'some string')与具有多个Text子节点的节点一起使用时不起作用

我有一个小问题,Xpath包含dom4j ...

让我们说我的XML是

<Home>
    <Addr>
        <Street>ABC</Street>
        <Number>5</Number>
        <Comment>BLAH BLAH BLAH <br/><br/>ABC</Comment>
    </Addr>
</Home>
Run Code Online (Sandbox Code Playgroud)

假设我想在给定根元素的文本中找到所有具有ABC的节点...

所以我需要写的xpath就是

//*[contains(text(),'ABC')]

然而,这不是Dom4j返回的......这是dom4j问题还是我理解xpath如何工作.因为该查询仅返回Street元素而不返回Comment元素.

DOM使Comment元素成为具有四个标记2的复合元素

[Text = 'XYZ'][BR][BR][Text = 'ABC'] 
Run Code Online (Sandbox Code Playgroud)

我会假设查询应该仍然返回元素,因为它应该找到元素并运行包含但它不会......

以下查询返回元素,但它返回的远远多于元素,它还返回父元素...这对问题是不可取的...

//*[contains(text(),'ABC')]
Run Code Online (Sandbox Code Playgroud)

是否有任何人知道XPath查询会只返回元素<Street/><Comment/>

xpath dom4j

235
推荐指数
6
解决办法
47万
查看次数

标签 统计

dom4j ×1

xpath ×1