【问题标题】:Getting div by class with PHP DOM使用 PHP DOM 按类获取 div
【发布时间】:2013-12-07 06:28:38
【问题描述】:

问题在于检索和显示 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——没什么大不了的。)

【问题讨论】:

  • 是的,我已经尝试了您可能想到的所有内容,但让我快速编辑一下。
  • 看看这里,可能会有帮助...stackoverflow.com/questions/5662404/…
  • 和 +1 用于编辑您的问题并添加您尝试过的内容。 99.9% 的人不这样做。
  • 谢谢,但我确实看过那里。那对我也不起作用:|它不返回任何东西。
  • 最新版本——你用顶部元素试过了吗?另外,我从带有 file_get_contents 的 URL 请求它,这可能是个问题吗?

标签: php dom


【解决方案1】:

好的,我终于解决了。

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

[为满足最低需求进行了编辑,如果出现任何错误,请发表评论]

【讨论】:

    猜你喜欢
    • 2016-04-05
    • 2018-05-11
    • 1970-01-01
    • 2023-03-19
    • 2021-02-18
    • 2016-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多