Я использую Простой HTML PHP Синтаксический анализатор DOM для очистки некоторых данных интернет-магазина (также выполняющий XAMPP 1.7.2 с PHP5.3.0), и я сталкиваюсь с проблемами с <tbody>
тег. Структура таблицы, по существу (детали не действительно настолько важны):
<table>
<thead>
<!--text here-->
</thead>
<tbody>
<!--text here-->
</tbody>
</table>
Теперь, я пытаюсь добраться до <tbody>
раздел при помощи кода:
$element = $html->find('tbody',0)->innertext;
Это не бросает ошибок, это просто ничего не распечатывает, когда я пытаюсь повторить его. Я протестировал код других элементов, <thead>
, <table>
, даже что-то как <span class="price">
и они все хорошо работают (ofcourse, удаление", 0 дюймов приводят код к сбою). Они все дают свои корректные разделы. Outertext так же. Но все это перестало работать на <tbody>
.
Теперь, я скользил через Синтаксический анализатор, но я не уверен, что могу понять это. Я заметил это <thead>
даже не упоминается, но это хорошо работает. пожатие плеч
Я предполагаю, что мог попытаться сделать дочернюю навигацию, но это, кажется, дает незначительный сбой также. Я только что попытался работать:
$el = $html->find('table',0);
$el2 = $el->children(2);
echo $el2->outertext;
и провал. Испытанная замена children
с first_child
и 2 с 1, и все еще провал. Забавный, тем не менее, если я пробую ->find
вместо children
, это работает отлично.
Я довольно уверен, что мог найти обходное решение всем этим, но это поведение кажется достаточно нечетным для регистрации здесь. Мой любопытный ум счастлив за всю справку, которую это может получить.
Убедитесь, что ваш tbody
исходит из выполнения какого-либо javascript. Я столкнулся с той же проблемой с тегом span. Позже я обнаружил, что если какой-либо html-код попадает на страницу через выполнение jquery/любого другого javascript, то в этом случае simple_html_dom
просто терпит неудачу.