2012-03-16 17 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'があります。単純さがそれを持っているかどうかは分かりませんが、完全なDOMはそうしています。 –

答えて

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

ありがとう!できます! –

+0

@Fitz次の要素が以前と同じでない場合、どのようにテキストを取得できますか?私の現在のものが 'a:テスト

  • テスト
  • '? –