加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – domxpath – 从第二个ul中提取li标签

发布时间:2020-12-13 21:47:54 所属栏目:PHP教程 来源:网络整理
导读:我试图从下面提取第二个ul的li标签.不幸的是,html中没有类或id来帮助 ul liSome text/li liSome text/li liSome text/li/ulul liSome more text/li liSome more text/li liSome more text/li/ul 我试过(实际上是一些事情): $ul = $xpath-query('//ul')-item
我试图从下面提取第二个ul的li标签.不幸的是,html中没有类或id来帮助

<ul>
    <li>Some text</li>
    <li>Some text</li>
    <li>Some text</li>
</ul>

<ul>
    <li>Some more text</li>
    <li>Some more text</li>
    <li>Some more text</li>
</ul>

我试过(实际上是一些事情):

$ul = $xpath->query('//ul')->item(1);
    $query = '/li';
    $lis = $xpath->evaluate($query,$ul);

想到这将得到第二个ul,然后我可以从那里提取.它确实让我得到了第二个ul的html,但我显然误解了` – >评估?因为我的李是李的全部,而不仅仅是第二次.

解决方法

您可以使用XPath直接访问它们:

$xpath->query('//ul[2]/li');

例:

$html = <<<EOF
<ul>
    <li>Some text</li>
    <li>Some text</li>
    <li>Some text</li>
</ul>

<ul>
    <li>Some more text</li>
    <li>Some more text</li>
    <li>Some more text</li>
</ul>
EOF;

$doc = new DOMDocument();
$doc->loadHTML($html);

$selector = new DOMXpath($doc);

// iterate through them...
foreach($selector->query('//ul[2]/li') as $li) {
    echo $li->nodeValue . PHP_EOL;
}

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读