我有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>
Run Code Online (Sandbox Code Playgroud)
我试图从第一个ul列表中获取元素.我正在使用此代码,但它返回错误:
<?php
$dom = new DOMDocument();
$dom->loadHTML($data);
$postalCodesList = $dom->getElementsByTagName('ul');
foreach ($postalCodesList->item(0) as $postalCodesList) {
echo $postalCodesList->nodeValue.'<br />';
}
?>
Run Code Online (Sandbox Code Playgroud)
将DomNode传递给foreach将不允许您遍历其中的childen,您可以轻松获取lis 列表并迭代它们.
<?php
$dom = new DOMDocument();
$dom->loadHTML($data);
$postalCodesList = $dom->getElementsByTagName('ul');
foreach ($postalCodesList->item(0)->getElementsByTagName('li') as $postalCodesList) {
echo $postalCodesList->nodeValue.'<br />';
}
?>
Run Code Online (Sandbox Code Playgroud)