猿问

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

我在 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;  ?>

不幸的是,我没有得到任何回报。有人看到我的错误吗?


MYYA
浏览 88回答 1
1回答

守着一只汪

您希望将结果存储DOMXPath::query到一个变量中,该变量将是一个DOMNodeList.然后,您可以像访问数组一样访问它(尽管有趣的是,手册没有提到它):$matches&nbsp;=&nbsp;$xpath->query('//div[contains(@class,&nbsp;"left")]'); echo&nbsp;$matches[0]->textContent;(注意:理想情况下,您还想检查您的查询是否至少返回一个结果。)演示:https ://3v4l.org/M0TQX旁注:您不需要在每一行上打开和关闭 PHP 标记 :)编辑实际上使用 DOMXPath::evaluate 使这更容易(感谢@ThW 提供的有用评论):echo&nbsp;$xpath->query('string(//div[contains(@class,&nbsp;"left")])');
随时随地看视频慕课网APP
我要回答