使用PHP DOM逐个获取div

时间:2013-12-06 00:34:57

标签: php dom

问题是检索并显示div内容。 Catch是,它是一个多类:

<li class="activity user-generated" id="activity:153411947-kIq0nOFam0hE68sL6P298_DIo4s-1386284074745">

在我的情况下,如果ID没有为每个新状态自动生成,我可能会更容易使用它。

此外,关于此主题,是否可以获取每个标记并按顺序列出它们?

感谢您的时间。

$classname = "activity";
$domdocument = new DOMDocument();
$domdocument->loadHTML($doc);
$a = new DOMXPath($domdocument);
$spans = $a->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' $classname ')]");

$ doc是我正在加载的页面

好吧,让我重新开始吧,因为这不起作用的事情让我很烦恼。

我想要做的是从我发布的元素中读取,我需要从URL调用它,因为只读取元素本身就像HTML一样。从URL中,我得到了一堆不必要的错误,基本上重复了同样的事情。

Function obtainUserStatus($Username){
    $DOM = new DOMDocument();
    $Class = "activity";
    $DOM->loadHTMLFile('http://lifestream.aol.com/stream/' . $Username);
    $X = new DOMXPath($DOM);
    $ID = $X->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' $Class ')]")->item(0)->getAttribute('id');
    Echo $ID;
}

只返回错误。

我需要从课程中返回div的内容(或者ID,我正在那里做的 - 没什么大不了的。)

1 个答案:

答案 0 :(得分:0)

好的,我终于解决了这个问题。

对于任何需要解决方案的人来说(4个人都喜欢,所以我猜一些人会这样做),现在我们的情况当然不同了,但这绝对可以帮到你:

Function getDivContents($URL, $ID){
    $DOM = new DOMDocument();
    $DOM->validateOnParse = True;
    @$DOM->loadHtml(File_Get_Contents($URL));
    $xPath = new DOMXPath($DOM);
    $Main = $DOM->getElementById($ID)->nodeValue;

    Return $Main;
}

只需使用Echo getDivContents('url','id')调用它;

[编辑以满足最低需求,如果出现任何错误只是评论]