2013-06-25 4 views
0

При подготовке следующего действия я обнаружил много информации, которая была неясной, поэтому я думал, что id спрашивает об этом, чтобы узнать, может ли кто-то очистить что-то для меня.Анализ HTML-таблиц DOM

что именно символ @ делать на следующий

$domOb = new DOMDocument(); 
$html = @$domOb->loadHTMLFile('http:...'); 

Это сделал удалить ошибку и на самом деле анализировать данные, но это хорошее решение практика. Я использовал это без символа @ и получил ожидаемые результаты.

Учитывая, что у меня есть несколько таблиц, лучший или простой способ получить все <td> из let say table 3. Я собирался перечислить все <td>, а затем просто начните и закончите со значением, которое коррелирует с необходимым данные

Если вы хотите анализировать HTML через PHP, мне нравится идея использования DOM, поэтому при получении файла, что я должен использовать. loadHTMLFile()loadHTML() ... могу я по-прежнему использовать Xpath? ... Если это очень занятый/плохо маркированный HTML, это имеет значение?

Что хорошая практика для просматривая данные

$items = $domOb->getElementsByTagName('td'); 

    $k = 0; 
    $num = $items->length; 
    while ($k < $num) 
    { 
     echo $item_web = $items->item($k)->, '<br>'; 
     $k++; 
    } 

Я нашел, что хорошо How do you parse and process HTML/XML in PHP? но его 2-х лет, так что я думал, что идентификатор задать несколько вопросов.

Просто небольшой клип третьего стола ... На первый взгляд я заметил, что пространство на третьем теге влияет на результаты?

<td>Parcel ID: <a href=... style=text-decoration:underline;><b>666666</b></a></td> 
<td>Name: Mr. help</td></tr><tr> 
<td >Parcel Address: 666 help RD&nbsp;</td> 
<td>Name2: Ms. help F</td></tr><tr><td>City: Helpover 66666</td> 
<td>Address: 6666 6TH AVE NE UNIT 333</td> 
+0

Если вы знакомы с JQuery, вы, вероятно, любовь [phpQuery] (https://code.google.com/p/phpquery/). Я знаю, что, когда я должен выбирать глубоко вложенные узлы и хочу иметь развитые отношения child/parent/sibling, я не хочу создавать для него фреймворк. – Ohgodwhy

+0

Stackoverflow работает (лучше всего), задавая один вопрос одновременно. Поэтому я ответил только на вопрос об операторе подавления ошибок. О анализе таблицы HTML у нас уже есть ресурсы, связанные с DOM, но я думаю, что у нас пока нет ответа, который предлагает модель таблицы на основе DOM. Однако я бы сказал, что для этого требуется изолированный вопрос. Для остальных: объясняется Xpath, только вопрос, который составляет 2 года, не является основанием снова спрашивать его. Просто говорю. – hakre

ответ

0

что именно символ @ делать на следующий

Он должен подавлять ошибки, но это не правильный способ сделать это на DomDocument и связанных с ними расширений. Правильный способ - вызвать libxml_use_internal_errors(true); перед загрузкой искаженного HTML.

Могу ли я использовать Xpath ?.

Да:

$xpath = new DomXPath($domOb); 
$tds = $xpath->query('//td'); 

Я заметил пробел в 3-тега это влияет на результат?

Объекты преобразуются при доступе к свойству textContent из ваших узлов TD.

0

Это [@ error control operator] удалило ошибку и фактически проанализировало данные, но это хорошее решение. Я использовал это без символа @ и получил ожидаемые результаты.

Он не удаляет ошибку, игнорирует ее, например. уровень ошибки будет установлен в 0, и если ошибки отображения будут включены, эта ошибка не будет отображаться. Но он все еще существует и будет обрабатываться, если используется обработчик ошибок.

Как вы можете себе представить, это не очень хорошая практика.Избегайте этого, и если вы видите, что код имеет его, будьте уверены, что он имеет более низкое качество. Смотрите так же:

Смежные вопросы