3

私はこのような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 />';

            }
?>
4

1 に答える 1

8

DomNodeをforeachに渡すと、その子を反復処理できなくなります。sのリストを簡単に取得して、liそれらを反復処理できます。

<?php
    $dom = new DOMDocument();
    $dom->loadHTML($data);
    $postalCodesList = $dom->getElementsByTagName('ul');
    foreach ($postalCodesList->item(0)->getElementsByTagName('li') as $postalCodesList) {
        echo $postalCodesList->nodeValue.'<br />';                    
    }
?>

デモ

于 2012-11-25T17:42:38.073 に答える