使用 file_get_html 并从 div 中的第一个跨度中提取内容

Use file_get_html and extract content from the first span in a div

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;

你或许可以添加另一个 firstchild()

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

您只导航到 div 将两个 sub-divs 的内容组合在一起。您需要到达这两个 children 中的第一个。正如我在这里的简化所示:

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

根据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;

那就是:

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