Я использую простой HTML для извлечения данных из таблицы и мне нужна помощь - PullRequest
1 голос
/ 17 сентября 2009

Извините за плохой титул, ребята, но я заорал. У меня есть таблица как таковая:

<table class="gsborder" cellspacing="0" cellpadding="2" rules="cols" border="1" id="d00">
        <tr class="gridItem">
                <td>Code</td><td>0adf</td>
        </tr><tr class="AltItem">
                <td>CompanyName</td><td>Some Company</td>
        </tr><tr class="Item">
                <td>Owner</td><td>Jim Jim</td>
        </tr><tr class="AltItem">
                <td>DivisionName</td><td> </td>
        </tr><tr class="Item">
                <td>AddressLine1</td><td>9314 W. SPRING ST.</td>
        </tr>
</table>

Я использую следующий код для вывода моих данных:

  $foo = $html->getElementById("d00")->childNodes(1)->childNodes(1);

Проблема в том, что я получаю два <td></td> тега с моими данными. Есть ли способ получить только необработанные данные без тегов?

Кроме того, это правильный способ получить мои данные из этой таблицы?

Ответы [ 2 ]

3 голосов
/ 17 сентября 2009

Попробуйте использовать:

$foo = $html->getElementById("d00")->childNodes(1)->childNodes(1)->plaintext;

или внутренний текст.

// Example
$html = str_get_html("<div>foo <b>bar</b></div>"); 
$e = $html->find("div", 0);

echo $e->tag; // Returns: " div"
echo $e->outertext; // Returns: " <div>foo <b>bar</b></div>"
echo $e->innertext; // Returns: " foo <b>bar</b>"
echo $e->plaintext; // Returns: " foo bar"

взято из: http://simplehtmldom.sourceforge.net/manual.htm

Как правило, независимо от того, какой API DOM вы используете, после того, как вы нашли элемент (ы), из которого вы заинтересованы в получении данных, доступ к содержащимся в них текстовым узлам требует немного больше работы.

2 голосов
/ 17 сентября 2009

Используйте strip_tags для получения необработанного текста.

http://us.php.net/manual/en/function.strip-tags.php

Итак:

$foo = strip_tags($html->getElementById("d00")->childNodes(1)->childNodes(1));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...