[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: DOM + HTML таблица, как вытянуть?
Flame_of_Death
Есть html страница (код):
HTML
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Заголовок</title>
<body bgcolor="white" link="#0000cc">
<table border="0" width="100%" cellspacing="0" cellpadding="25"><tr valign="top">
<td width="16%"><h2>Заголовок1</h2></td>
<td width="84%"><h2>Заголовок1а</h2></td>
</tr></table>
<br><table width="100%" border="0" cellspacing="0" cellpadding="10">
<tr valign="top">
<td width="16%" align="center">
<img src="/logo/001.gif" border="0" alt="1 картинка"><br><b>Название картинки 1</b><br><br>
</td>
<td width="84%">
<div>1 строка</div>
<div>2 строка</div>
</td>
</tr>
<tr><td colspan="2"><div><spacer></spacer></div></td></tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="10">
<tr valign="top">
<td width="16%" class="left" align="center">
<img src="/logo/002.gif" border="0" alt="2 картинка"><br><b>Название картинки 2</b><br><br>

</td>
<td width="84%">
<div>1 строка</div>
<div>2 строка</div>
</td>
</tr>
<tr><td colspan="2><div><spacer></spacer></div></td></tr>
</table>

Вытягиваю страницу как DOM документ (для примера заголовок):
PHP
$dom = new DomDocument();
$dom->loadHTMLFile('http://localhost/test.html');
$title $dom->getElementsByTagName("title");
$title iconv("utf-8""windows-1251"$title->item(0)->textContent);
echo 
$title;

Вопрос, подскажите как посчитать количество таблиц в документе, и соответственно вытаскивать атрибуты из каждой таблицы:
1. Заголовок1
2. Заголовок1а
3. Из 1 -ой колонки (td): Из тега img адрес картинки, альт тег.
4. Из второй td колонки: Все или определенные div элементы

....
Или хотя бы подскажите как вывести на экран дерево элементов, подобно xml парсингу.. С парсингом html впервые сталкиваюсь...



Спустя 2 часа, 32 минуты, 12 секунд (22.10.2009 - 20:52) Guest написал(а):
Здесь обсуждался похожий вопрос DOM+php

Спустя 8 часов, 25 минут, 18 секунд (23.10.2009 - 05:17) Flame_of_Death написал(а):
Цитата (Guest @ 22.10.2009 - 17:52)
Здесь обсуждался похожий вопрос DOM+php

Guest, херня сайт, либо набор букаф, либо очень плохой перевод... Может кто то реально подскажет? sad.gif

Спустя 3 часа, 3 минуты, 33 секунды (23.10.2009 - 08:21) olgatcpip написал(а):
Попробуй так...
PHP
foreach ($dom->getElementsByTagName("table") as $element) {
    echo 
'local name: '$element->getAttribute ($atributname), "\n";
}

Спустя 22 минуты, 12 секунд (23.10.2009 - 08:43) Flame_of_Death написал(а):
Получился пустой перечень:
local name:
local name:
local name:
local name:
local name:
local name:
и т.д.
Попробовал по другому:
PHP
$dom = new DomDocument();
$dom->loadHTMLFile('http://localhost/test.html');
$elements = $dom->getElementsByTagName('table');
foreach ($elements as $item) {
$in = iconv("utf-8", "windows-1251", $item->nodeValue);
    echo  $in . "\n";
}

Вытащил все данные, кроме тегов , т.е. чистый текст. Но вопрос остается...
Данные в виде html выдираются запросом, в зависимости от запроса html документ может содержать от 1-й, до 50-70 таблиц, вот как вытаскивать определенные фрагменты этих таблиц, как говорилось выше в моем посте.

Спустя 11 часов, 55 минут, 17 секунд (23.10.2009 - 20:38) olgatcpip написал(а):
PHP
echo 'local name: '$element->getAttribute ($atributname). "\n";
я опечаталась. точка же - объединяет строку а не запятая.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.