php - 使用 PHP DOM 按类获取 div

标签 php dom

问题是检索和显示 div 内容。要注意的是,它与多类有关:

<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,这是我从那里做的——没什么大不了的。)

最佳答案

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

对于任何需要解决方案的人(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'); 调用它即可

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

关于php - 使用 PHP DOM 按类获取 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20413766/

相关文章:

php - 将值插入我在 Magento 数据库中创建的新字段

javascript - 在 DOM 准备好之前加载 jquery - 可以通过删除 $() 别名来实现吗?

javascript - 单击除一个元素之外的 HTML,不使用 jQuery

javascript - HTML DOM - 新元素采用错误的值?

javascript - 窗口的关闭属性?

javascript - 如何追加Js变量

php - 如何删除Excel表格中最上面的两行空行?

php - 如何显示 Zend 框架抛出的异常错误?

javascript - 计算网站上多个文件的下载次数的最佳方法

php - 帮助数组列表 - PHP MYSQL