我在 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;
(注意:理想情况下,您还想检查您的查询是否至少返回一个结果。)
旁注:您不需要在每一行上打开和关闭 PHP 标记 :)
编辑
实际上使用 DOMXPath::evaluate 使这更容易(感谢@ThW 提供的有用评论):
echo $xpath->query('string(//div[contains(@class, "left")])');
- 1 回答
- 0 关注
- 87 浏览
添加回答
举报
0/150
提交
取消