我想显示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 />";
}
}
}
答案 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.php和XSL for-each: how to detect last node?。