PHP DOM文档获取节点信息
问题描述:
我与PHP的工作,我想从一个网页PHP DOM文档获取节点信息
一切正常获得某些数据直到我到了这个部分:
<a class="cleanthis" href="https://www.web.com" id="1122" rel="#1122" style="display: inline-block;"><strong>the data i want</strong></a>
正如你可以看到,我想数据强劲,但我不能得到它。我只得到空行
代码我使用:
foreach($as as $a) {
if ($a->getAttribute('class') === 'cleanthis') {
$strong = $a->getElementsByTagName('strong');
echo $strong->nodeValue;;
}
答
你应该看到此错误消息:
未定义的属性:的DOMNodeList :: $的nodeValue
也就是说因为$strong = $a->getElementsByTagName('strong');
将在$string
中输入DOMNodeList
。您需要迭代列表或从中检索实际节点,例如
echo $strong->item(0)->nodeValue;
或者你也可以使用XPath:
$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
foreach ($xpath->evaluate('//a[@class="cleanthis"]/strong/text()') as $element) {
echo $element->nodeValue, PHP_EOL;
}
+0
我必须使用domdocument的方式,但仍然没有工作 –
+0
@AlbinGjoka为我工作https://eval.in/883938 – Gordon
也许是从简化成为一个错字,但类是'cleanthis'和你正在寻找'hoverinfo_trigger' – ishegg
我做了一个错字,对不起 –
我会使用风格使文本强..不赞成与标记混合的风格。那么你可以通过ID选择元素例如.. – rmjoia