使用PHP进行文档操作

使用PHP进行文档操作,php,Php,我正在尝试使用PHP解析页面的一个非常特定的部分,目前我正在使用:“getElementsByTagName” 它实际上正在工作,但似乎没有清除所有内容,因为还有其他行具有类似的标记, 因此,我试图寻找一种更好的模式,并找到了一个独特的附加“class”标记。 //获取所有li $items=$DOM->getElementsByTagName('li'); //显示所有LI文本 对于($i=0;$ilength;$i++) echo$items->item$i->nodeValue。“”

我正在尝试使用PHP解析页面的一个非常特定的部分,目前我正在使用:“getElementsByTagName”
它实际上正在工作,但似乎没有清除所有内容,因为还有其他行具有类似的标记,
因此,我试图寻找一种更好的模式,并找到了一个独特的附加“class”标记。

  • //获取所有li
    $items=$DOM->getElementsByTagName('li');
    //显示所有LI文本
    对于($i=0;$i<$items->length;$i++)
    echo$items->item$i->nodeValue。“
    ”;
    您可以使用XPath获取所有
    唯一的
    类名:

    $xpath = new DOMXpath($DOM);
    $items = $xpath->query('//li[@class="unique"]');
    
    并将其循环:

    for ($i = 0; $i < $items->length; $i++) {
        echo $items->item($i)->nodeValue . "<br/>";
    }
    
    for($i=0;$i<$items->length;$i++){
    echo$items->item($i)->nodeValue。“
    ”; }
    我不明白这个问题。如果你得到了所有的LI,为什么你希望它显示H1文本?@Barmar我想这可能是他粘贴的代码留下的注释。这是我的错误。。代码示例中的H1就在那里。。你可以忽略关于H1OK的评论,但我仍然不理解这个问题。不清除所有内容是什么意思?也许您想要
    $xp=newdomxpath($dom)$nodes=$xp->query('//li[@class=“unique”]')这就成功了。。。以前从未使用过xpath-感谢您提供的宝贵提示。@Amitsonenschein:很高兴能提供帮助!是的,XPath非常有用。查看文章中的示例。
    
    $xpath = new DOMXpath($DOM);
    $items = $xpath->query('//li[@class="unique"]');
    
    for ($i = 0; $i < $items->length; $i++) {
        echo $items->item($i)->nodeValue . "<br/>";
    }