【发布时间】:2015-04-02 14:53:10
【问题描述】:
我有这样的 HTML 结构
<div class = article-comments>
<div class="article-comment">
<div class="article-comment-header">...</div>
<div class="article-comment-content">...</div>
</div>
<div class="article-comment">
<div class="article-comment-header">...</div>
<div class="article-comment-content">...</div>
</div>
</div>
.
.
.
</div>
我有一个 div 元素 - cmets,其中包含许多其他 div 元素 - comment。我需要获取包含评论创建者名称的 header 元素和包含评论的 *content。我在 PHP 中有这样的代码:
foreach($bot->parseBetweenRegexArray($data, '<div.*class="article-comment-content">', '<\/div>') as $commentary ){
printf("comment: %s",$commentary);
foreach($bot->parseBetweenRegexArray($data, '<div.*class="article-comment-header">', '<\/div>') as $name) {
printf("name: %s",$name); '<br />';
}
}
但是使用此代码我无法获得正确的顺序,例如评论作者姓名和相应的评论等。 如何做到这一点?
谢谢!
【问题讨论】:
-
您无法使用正则表达式解析 HTML:stackoverflow.com/a/1732454/140925
-
如果是这样,我怎样才能通过使用循环正确获取这些 HTML div 属性的值?
-
我不知道循环,但我会寻找 DOM 或 SAX 解析器。
-
foreach($html->find('div.article-cmets') as $article) { ? }.......如何用DOM解析器做到这一点?