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; } ? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |