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

Dom XPATH查找包含文本和特定标记的div,dom,xpath,domdocument,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>

假设我有以下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,因为它不包含span(仅包含文本);无法选择第四个div,因为它仅包含span(不包含文本)


如何在XPATH中实现这一点?如果有必要,我将使用PHP。

您可以尝试使用以下XPath:

//div[text()[normalize-space(.)] and span]
上面的XPath将选择具有子元素的
元素和非空文本节点(跳过仅包含换行符的文本节点)