使用file_get_html并从div中的第一个范围中提取内容

时间:2015-11-02 13:27:01

标签: php simple-html-dom

html内容为:

<div id="sns-availability" class="a-section a-spacing-none">
    <div class="a-section a-spacing-mini">
        <span class="a-size-medium a-color-success">
          In Stock.
        </span>
        <span class="a-size-base">
          Ships Soon.
        </span>
    </div>
</div>

从下面的代码中,输出是:

有货。很快就会发货。

我想知道如何只提取:

有货。

有人可以帮忙吗?

include_once('simple_html_dom.php');
$url = "xxx";
$html = file_get_html($url);
$output = $html->find('div[id=sns-availability]');
$output = $output[0]->first_child();
echo $output;

3 个答案:

答案 0 :(得分:2)

你可以添加另一个firstchild()

$output = $output[0]->first_child()->first_child();

您只能导航到对内容被回显的两个子div进行分组的div。你需要到达这两个孩子中的第一个。正如我在这里的简化所示:

<div>
    <div> <-- you are here
        <span>In stock</span> <-- need to get here
        <span>Ships soon</span>
    </div>
<div>

答案 1 :(得分:2)

那就是:

$html->find('#sns-availability span', 0);

答案 2 :(得分:0)

根据documentation

// Find all <span> with class=gb1
$result = $dom->find('span.gb1');

尝试

$result = $dom->find('span.a-size-medium a-color-success');
echo $result->plaintext;