我从远程服务器使用file_get_contents获取一个页面,但是我希望过滤该页面并使用PHP从中获取具有类“text”的DIV.我从DOMDocument开始,但现在我迷路了.
有帮助吗?
$file = file_get_contents("xx");
$elements = new DOMDocument();
$elements->loadHTML($file);
foreach ($elements as $element) {
if( !is_null($element->attributes)) {
foreach ($element->attributes as $attrName => $attrNode) {
if( $attrName == "class" && $attrNode== "text") {
echo $element;
}
}
}
}
解决方法:
将文档加载到DOMDocument实例后,可以在其上使用XPath查询 – 这可能比通过DOM更容易.
为此,您可以使用DOMXpath类.
例如,您应该可以执行以下操作:
$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$tags = $xpath->query('//div[@class="text"]');
foreach ($tags as $tag) {
var_dump($tag->textContent);
}
(未经过测试,因此您可能需要稍微调整XPath查询…)
标签:php,dom,parsing,html
来源: https://codeday.me/bug/20190713/1452252.html