2012-03-16 199 views
1

我試圖從HTML頁面解析一些信息。唯一的問題是我需要的信息不在標籤中,因此無法輕易找到。這是我正在談論的一個例子。PHP解析器:解析HTML標籤後的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文件相同。所以有些可能可能是「批判性思維」或「頂點」,還有更多其他的頭銜。提取這些數據的最佳方法是什麼?我正在使用PHP簡單HTML DOM解析器 - http://simplehtmldom.sourceforge.net/

+2

一旦你找到一個DOM樹中的節點,有'nextsibling'和'previoussibling'看樹節點的鄰居。不知道是否simpledom有,但完整的DOM。 – 2012-03-16 18:30:48

回答

1

Marc B的評論是正確的。 SimpleHTMLDOM具有以下功能,您可以在元素上執行以實現您想要的功能。

  • element $e->parent() - 返回元素的父親。
  • element $e->first_child() - 返回元素的第一個子元素,如果未找到,則返回null。
  • element $e->last_child() - 返回元素的最後一個子元素,如果未找到,則返回null。
  • element $e->next_sibling() - 返回元素的下一個兄弟元素,如果未找到,則返回null。
  • element $e->prev_sibling() - 返回元素的前一個兄弟元素,如果未找到,則返回null。

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

+0

謝謝!有用! – 2012-03-16 19:28:51

+0

@Fitz如果下一個元素不像以前那樣,我如何獲取文本例如。如果我現在的是'a: test

  • test
  • '? – 2014-11-29 12:32:21