XPATH查找包含文本和特定标记的div

时间:2014-04-17 03:43:21

标签: dom xpath domdocument

假设我有以下HTML代码段

<div id="parent_div">

    <!-- First div -->
    <div>
        Hi <span>Dave</span>, how are you?
    </div>

    <!-- Second div -->
    <div>
        Hi, how are you?
    </div>

    <!-- Third div -->
    <div>
        Hi <span>Jenny</span>, how are you?
    </div>

    <!-- Fourth div -->
    <div>
        <span>Ryan</span>
    </div>
</div>

我想使用XPATH来查找包含span和text的div。所以,在上面的例子中,我想找到第一个div和第三个div。无法选择第二个div,因为它不包含范围(仅包含文本),并且无法选择第四个div,因为它只包含范围(不包含文本)

我怎样才能在XPATH中这样做?如果重要,我正在使用PHP。

1 个答案:

答案 0 :(得分:2)

您可以尝试使用此XPath:

//div[text()[normalize-space(.)] and span]

上面的XPath将选择具有child:<div>元素的<span>元素和非空文本节点(以跳过仅包含换行符的文本节点)