的第二个参数处设置索引0(第一个)
我对PHP很陌生,所以我尝试使用简单的HTML DOM解析器从网站获取我需要的信息。下面是示例节点:
<div>
<h1>Hello</h1>
<figure id="XXX">
<div class="abc">ABC</div>
<div class="qwe">QWE</div>
<div class="zxc">ZXC</div>
</figure>
</div>
$element包含上述节点。我需要得到的是"QWE",所以我尝试:
$name = $element->find('figure[id=XXX]')->children(1)->innertext;
但现在的问题:致命错误:在非对象上调用成员函数children(),如果我停止在find('figure[id=XXX]')处,这是没有问题的,但它返回数组,我无法获得确切的信息。
解决方案吗?请帮忙,提前感谢。
好了:
$str = '<div>
<h1>Hello</h1>
<figure id="XXX">
<div class="abc">ABC</div>
<div class="qwe">QWE</div>
<div class="zxc">ZXC</div>
</figure>
</div>';
$html = str_get_html($str);
$str = $html->find('figure[id=XXX]',0)->children(1)->plaintext;
echo($str);
find返回元素并且您需要单个元素,因此在find
最好这样做:
$html->find('figure#XXX > *[2]',0)->plaintext;