我有html文件,如下所示:
<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
</ul>
<ul>
<li>smth 1 2 3..</li>
<li>another</li>
<ul>
<ul>
<li>smth 1 2 3..</li>
<li>another</li>
<ul>
我试图仅从第一个ul列表中获取元素。我正在使用此代码,但它返回错误:
<?php
$dom = new DOMDocument();
$dom->loadHTML($data);
$postalCodesList = $dom->getElementsByTagName('ul');
foreach ($postalCodesList->item(0) as $postalCodesList) {
echo $postalCodesList->nodeValue.'<br />';
}
?>
答案 0 :(得分:7)
将一个DomNode传递给foreach将不允许你遍历它的孩子,你可以轻松获取li
的列表并迭代它们。
<?php
$dom = new DOMDocument();
$dom->loadHTML($data);
$postalCodesList = $dom->getElementsByTagName('ul');
foreach ($postalCodesList->item(0)->getElementsByTagName('li') as $postalCodesList) {
echo $postalCodesList->nodeValue.'<br />';
}
?>