You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过XPath获取带synopsis类的h4下子p标签内容?

解决XPath获取子段落内容的问题

你的目标HTML结构如下:

<h4 class="m-b-0 text-dark synopsis"><p>This is the text I want.</p></h4>

你当前的XPath查询//h4[contains(@class, 'synopsis')]只能定位到目标h4元素本身,并没有深入到它的子节点p,所以拿不到段落内容。可以通过两种方式解决:

  • 直接用XPath定位到p标签的文本
    调整XPath表达式,直接指向h4下的p标签文本:

    $result = $xpath->query("//h4[contains(@class, 'synopsis')]/p/text()");
    if ($result->length > 0) {
        echo $result->item(0)->nodeValue; // 输出:This is the text I want.
    }
    
  • 先获取h4节点,再查询其子节点
    如果已经拿到h4节点,可以基于该节点再查询内部的p标签:

    $h4Node = $xpath->query("//h4[contains(@class, 'synopsis')]")->item(0);
    if ($h4Node) {
        $pTextNode = $xpath->query("./p/text()", $h4Node)->item(0);
        if ($pTextNode) {
            echo $pTextNode->nodeValue;
        }
    }
    

需要注意的是,调用query后要先判断结果的length是否大于0,或者节点是否存在,避免出现空指针错误。

内容的提问来源于stack exchange,提问作者GFL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 11:34:57