如何用简单的 HTML DOM 来模拟子选择器?

2024-01-11

Fellas!

我有一个令人讨厌的页面需要解析,但无法弄清楚如何使用它从中提取正确的数据块简单的 HTML DOM http://simplehtmldom.sourceforge.net/,因为它没有 CSS 子选择器支持。

HTML:

<ul class="ul-block">
   <li>xxx</li>
   <li>xxx</li>
   <li>
      <ul>
         <li>xxx2</li>
      </ul>
</ul>

我将如何提取(直接)孩子li父元素ul.ul-block?

The $node->find('ul[class=ul-block] > li');不起作用并且$node->find('ul[class=ul-block] li');ofc还发现嵌套后代li元素:(


我遇到了同样的问题,并使用 Children 方法仅获取第一级项目。

<ul class="my-list">
    <li>
        <a href="#">Some Text</a>
        <ul>
            <li><a href="#">Some Inner Text</a></li>
            <li><a href="#">Some Inner Text</a></li>
            <li><a href="#">Some Inner Text</a></li>
            <li><a href="#">Some Inner Text</a></li>
        </ul>
    </li>
    <li>
        <a href="#">Some Text</a>
        <ul>
            <li><a href="#">Some Inner Text</a></li>
            <li><a href="#">Some Inner Text</a></li>
            <li><a href="#">Some Inner Text</a></li>
            <li><a href="#">Some Inner Text</a></li>
        </ul>
    </li>
</ul>

下面是简单的 HTML Dom 代码,用于获取第一级 li 项目:

$html = file_get_html( $url );
$first_level_items = $html->find( '.my-list', 0)->children();

foreach ( $first_level_items as $item ) {
    ... do stuff ...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何用简单的 HTML DOM 来模拟子选择器? 的相关文章

随机推荐