猿问

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

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>

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

所以我需要写的xpath就是

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

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

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

[Text = 'XYZ'][BR][BR][Text = 'ABC']

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

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

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

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



ITMISS
浏览 1635回答 3
3回答

烙印99

[contains(text(),'')]只返回true或false。它不会返回任何元素结果。
随时随地看视频慕课网APP
我要回答