DOMXpath查询什么也不返回,我找不到错误

时间:2019-12-30 23:58:19

标签: php html wordpress dom xpath

我在wordpress帖子中有以下内容

the_content() 

<div class="directions">
<div class="left"> left </div>
<div class ="right"> right </div>
</div>

使用DOMXpath我只想提取和添加div类“ left”。我尝试过了

<?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 个答案:

答案 0 :(得分:0)

您要将DOMXPath::query的结果存储到变量中,该变量将为DOMNodeList

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

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

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

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

侧面说明:您无需在每一行上打开和关闭PHP标签:)