为了账号安全,请及时绑定邮箱和手机立即绑定

DOMXpath 查询不返回任何内容,我找不到错误

DOMXpath 查询不返回任何内容,我找不到错误

PHP
MYYA 2022-07-09 16:47:15
我在 wordpress 帖子中有以下内容the_content() <div class="directions"><div class="left"> left </div><div class ="right"> right </div></div>使用 DOMXpath 我只想提取和品脱 div 类“左”。我试过这个<?php libxml_use_internal_errors(true); ?><?php libxml_disable_entity_loader(true); ?><?php $html = new DOMDocument();?><?php $content = get_the_content();?><?php $html->loadHTML($content);?><?php $xpath = new DOMXpath($html); ?><?php $xpath->query('//div[contains(@class, "left")]'); ?><?php echo $xpath -> textContent;  ?>不幸的是,我没有得到任何回报。有人看到我的错误吗?
查看完整描述

1 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

您希望将结果存储DOMXPath::query到一个变量中,该变量将是一个DOMNodeList.

然后,您可以像访问数组一样访问它(尽管有趣的是,手册没有提到它):

$matches = $xpath->query('//div[contains(@class, "left")]');
echo $matches[0]->textContent;

(注意:理想情况下,您还想检查您的查询是否至少返回一个结果。)

演示:https ://3v4l.org/M0TQX

旁注:您不需要在每一行上打开和关闭 PHP 标记 :)


编辑

实际上使用 DOMXPath::evaluate 使这更容易(感谢@ThW 提供的有用评论):

echo $xpath->query('string(//div[contains(@class, "left")])');


查看完整回答
反对 回复 2022-07-09
  • 1 回答
  • 0 关注
  • 87 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信