【问题标题】:PHP Parser: Parse HTML Text After HTML TagsPHP Parser:在 HTML 标签之后解析 HTML 文本
【发布时间】:2012-04-02 07:32:28
【问题描述】:

我正在尝试从 HTML 页面解析一些信息。唯一的问题是我需要的信息不在标签中,所以不容易找到。这是我所说的一个例子。

<span class="fieldlabeltext">Levels: </span>Undergraduate 
<br>
<span class="fieldlabeltext">Attributes: </span>Online Course 
<br>
<span class="fieldlabeltext">Instructors: </span>N/A
<br>

我需要从上面的示例中提取“在线课程”,但并非所有“属性”在整个 HTML 文件中都是相同的。所以有些可能是“Critical Thinking”或“Capstone”,以及更多其他标题。提取这些数据的最佳方法是什么?我正在使用 PHP Simple HTML DOM Parser - http://simplehtmldom.sourceforge.net/

【问题讨论】:

  • 在 dom 树中找到一个节点后,nextsibling 和 previoussibling 可以查看该节点在树中的邻居。不知道 simpledom 是否有,但完整的 DOM 有。

标签: php html parsing dom


【解决方案1】:

Marc B 的评论是正确的。 SimpleHTMLDOM 具有以下功能,您可以对元素执行这些功能以完成您想要的操作。

  • element $e-&gt;parent() - 返回元素的父元素。
  • element $e-&gt;first_child() - 返回元素的第一个子元素,如果未找到则返回 null。
  • element $e-&gt;last_child() - 返回元素的最后一个子元素,如果没有找到则返回 null。
  • element $e-&gt;next_sibling() - 返回元素的下一个兄弟元素,如果没有找到则返回 null。
  • element $e-&gt;prev_sibling() - 返回元素的前一个兄弟元素,如果没有找到则返回 null。

来源:http://simplehtmldom.sourceforge.net/manual.htm#section_traverse

【讨论】:

  • @Fitz 如果下一个元素不像以前的那样,我如何获取文本,例如。如果我现在是&lt;strong&gt;a:&lt;/strong&gt;test &lt;li&gt;test&lt;/li&gt; ?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-03
  • 2012-05-26
  • 2016-05-06
  • 2012-11-07
  • 2018-12-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多