使用xpath循环遍历无序列表的列表元素

时间:2014-06-13 08:26:15

标签: php dom xpath

我想显示ul的列表元素,但不显示最后一个元素。我使用DOM坚果需要很长时间..有人可以给我Xpath表达式来解决这个问题。 请提供整个解决方案代码。

 $doc = new DOMDocument();  
    @$doc->loadHTMLFile($sel_image['snapdeal_content']);  
    $divs = $doc->getElementsByTagName('ul');  
    foreach($divs as $div) {  
    if ($div->getAttribute('class') == 'key-features') {  
        $li = $div->getElementsByTagName('li');  
        for($j=0;$j<$li->length-1;$j++){  
         echo "->".$li->item($j)->nodeValue;  
         echo "<br />";  
            }  

        }  

    }

1 个答案:

答案 0 :(得分:1)

尝试使用此摘录替换解决方案中的for循环。 $li数组应包含文档中所有<li>枚举的所有n-1 <ul>个元素。

$xpath = new DOMXPath($doc);
$query = '//ul[@class = "key-features"]/li[position() < last()]';
$li = $xpath->query($query);

另见http://www.php.net/manual/en/domxpath.query.phpXSL for-each: how to detect last node?