私の質問は、「Simple HTML DOM Library」を特に対象としていることに注意してください。3k 行以上のコードがあり、別のパーサーを使用することに興味はありません。
http://simplehtmldom.sourceforge.net/manual.htmの「HTML 要素の検索方法」を参照してください。
div
次のコードを使用して、さまざまな要素からホームページの URL を抽出しようとしています。
子孫セレクターの定義div[...] li a
は簡単です。しかし、私が試したホームページに絞り込むために:
- 6番目の
li
要素...インデックスを介して(以下を参照、「オブジェクト以外のプロパティを取得しようとしています」というエラーが発生します) label=Internet:
コードにその奇妙な
残念ながら、私はどちらにも成功しませんでした:)
望ましい出力
http://www.someurl.com/
http://www.anotherurl.com/
動かないコード
foreach($html->find('div[class=contact-data] li a', 6) as $element_details) {
// variable $html contains the Input listed below
// Output $element_details
}
入力(変数 $html に格納)
<div class="contact-data">
<ul class="plain-list">
<li>
Somestreet 18</li>
<li>
88888
Somecity</li>
<li>
<label>
Tel:</label>123/123456</li>
<li>
<label>
Fax:</label>123/123457</li>
<li>
<label>
E-Mail:</label><a href="http://www.somesite.com/de/Service/ContactParam?mail_pnr=000290080" onclick="">Contact</a></li>
<li>
<label>
Internet:</label><a href="http://www.someurl.com/">Homepage</a></li>
<li>
<div style="margin-left: 0px">
</div></li>
</ul>
</div>
<div class="contact-data">
<ul class="plain-list">
<li>
Anotherstreet 68</li>
<li>
88888
Anothercity</li>
<li>
<label>
Tel:</label>123/123447</li>
<li>
<label>
Fax:</label>123/123458</li>
<li>
<label>
E-Mail:</label><a href="http://www.anothersite.com/de/Service/ContactParam?mail_pnr=000570030" onclick="">Contact</a></li>
<li>
<label>
Internet:</label><a href="http://www.anotherurl.com/">Homepage</a></li>
<li>
<div style="margin-left: 0px">
</div></li>
</ul>
</div>