2012-11-25 52 views
1

项目我有html文件,它看起来像这样:PHP DOM得到第一UI元素

<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 />'; 

      } 
?> 
+1

它返回什么错误? –

+0

我使用http://simplehtmldom.sourceforge.net来完成这种类型的工作。 – shazzad

回答

5

传递一个れ到的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 />';      
    } 
?> 

DEMO

+0

谢谢,它的工作原理。 – jankes83

+0

这将工作相同的POST值? – Keith