простой HTML-анализатор DOM и <span> - PullRequest
0 голосов
/ 24 марта 2012

Я надеюсь, что любой может помочь мне с этим.

У меня есть HTML-код, подобный этому:

<div id="v4-95"><div id="v4-96" class="pview rs-pview"><table cellpadding="0" cellspacing="2" class="grid"><tr><td width="33%" class="gallery"><a name="item19c368bcd6"></a><table cellpadding="0" cellspacing="10" class="gallery"><tr><td class="picture camera" width="100%" height="140"><div class="image" style="width: 140px;"><a href="http://www.ebay.co.uk/itm/SAMSUNG-LTN156AT02-15-6-LAPTOP-SCREEN-NEW-/110652603606?pt=UK_Computing_LaptopAccess_RL&amp;hash=item19c368bcd6" class="gpvi" id="src110652603606" _sp="p4634.c0.m14.l1262" r="1"><img alt="Item image" title="Item image" src="http://thumbs3.ebaystatic.com/m/mvOLm6Tv8Lid54uveSlY80A/140.jpg" border="0"></a></div></td></tr><tr><td><div class="mi"></div></td></tr><tr><td class="details"><div class="ttl g-std"><a id="src110652603606" _sp="p4634.c0.m14.l1262" r="1" href="http://www.ebay.co.uk/itm/SAMSUNG-LTN156AT02-15-6-LAPTOP-SCREEN-NEW-/110652603606?pt=UK_Computing_LaptopAccess_RL&amp;hash=item19c368bcd6" target="_parent" title="SAMSUNG LTN156AT02 15.6&quot; LAPTOP SCREEN NEW">SAMSUNG LTN156AT02 15.6" LAPTOP SCREEN NEW</a><img src="http://q.ebaystatic.com/aw/pics/s.gif" width="16" alt="This seller accepts PayPal" height="16" class="ii iippl"></div><div><table cellpadding="0" cellspacing="0" class="fixed"><tr><td><img src="http://q.ebaystatic.com/aw/pics/bin_15x54.gif" alt="Buy It Now" title="Buy It Now"></td><td><span class="bin g-b">£41.50</span></td></tr>

Я могу получить заголовок с помощью этого кода:

 $html = file_get_html('http://stores.ebay.co.uk/LCD-Kings/15-6-/_i.html?_fsub=886314010&_sid=73271570&_trksid=p4634.c0.m322');
foreach($html->find('a') as $element) 
echo $element->title . '<br>';

Но я не понимаю, как я могу получить £ 41,50 между промежутком и почему у него есть пробел в классе "bin gb" ...

спасибо за помощь ...

1 Ответ

1 голос
/ 24 марта 2012

У него есть пробел в классе, потому что этот элемент имеет два класса. Один называется bin, другой называется g-b. Я предполагаю, что g-b относится к Великобритании, поэтому цена может быть пролетом, который имеет класс bin.

Вы не предоставили весь HTML-код, но может существовать внешний элемент, который вы можете искать (например, div с идентификатором product, а затем найти его в промежутке с классом * 1008). *).

Вы должны посмотреть документацию вашего DOM-парсера и посмотреть, какие аргументы он поддерживает для find(). Если он поддерживает что-то вроде #product span.bin (или аналогичный синтаксис), вы можете выбрать span с этим классом.

...