PHP简单HTML DOM解析器调用非对象上的成员函数children()

时间:2013-04-22 12:24:11

标签: php parsing simple-html-dom php-parser

我是PHP的新手,所以我尝试使用Simple HTML DOM Parser从网站获取我需要的信息。 这是示例节点:

<div>
    <h1>Hello</h1>
    <figure id="XXX">
        <div class="abc">ABC</div>
        <div class="qwe">QWE</div>
        <div class="zxc">ZXC</div>
    </figure>
</div>

$元素包含上面的节点。我需要得到的是“QWE”,所以我尝试:

$name = $element->find('figure[id=XXX]')->children(1)->innertext;

但现在出现了问题:致命错误:在非对象上调用成员函数children(),如果我在find处停止是没有问题的('figure [id = XXX]' ),但它返回数组,我无法得到确切的信息。

任何解决方案?请提前帮助,谢谢。

2 个答案:

答案 0 :(得分:3)

你去了:

 $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

中的第二个参数设置索引0(第一个)

答案 1 :(得分:0)

做得更好:

$html->find('figure#XXX > *[2]',0)->plaintext;