преобразование HTML таблиц в двумерный массив

BNS

Новичок
преобразование HTML таблиц в двумерный массив

Задача такая: написать скрипт, который будет парсить HTML код и при встрече с таблицей будет ее "раскладывать" в двумерный массив.

В принципе, это не сложно, только вот головную боль вызывает необходимость как-то проглатывать свойства тэгов TD и при встрече с colspan='n' создавать n пустых элементов массива.

Дело еще осложняется тем, что таблиц может быть много, поэтому выходной массив видимо будет как минимум трехмерным. А сам HTML код может содержать не только таблицы, но и всякую прочую дребедень.

Я не очень силен в регулярных выражениях, поэтому и прошу помощи.

В инете я нашел статейку про эту проблему, но для Perl, а надо на PHP - http://www.webcode.ru/re/table/

Заранее огромное спасибо.
 

SiMM

Новичок
> В инете я нашел статейку про эту проблему
Она не имеет никакого отношения к
> при встрече с colspan='n' создавать n пустых элементов массива
а что делает имеющийся там код можно догадаться и самому. Скажу лишь, что регулярки в PHP и perl мало чем отличаются.
 

SiMM

Новичок
> Я не очень силен в регулярных выражениях
Значит подошло время проштудировать материал.

> и при встрече с colspan='n' создавать n пустых элементов массива
Регулярники тебе для решения этой задачи не пригодятся. Только для выбора значений colspan/rowspan, да и то наверно проще сделать это в два действия.
 

BNS

Новичок
SiMM
короче хрен с ними с колспанами, хотя бы помоги с просто парсингом таблицы
 

Aidan Pride

Новичок
Хм ..... а зачем использовать трехмерный массив? Допустим, возьмем такой пример:
Код:
<table>
<tr><td>1</td><td>2</td></tr>
<tr><td><table><tr><td>3/1</td><td>3/2</td></tr></table><td>4</td></tr></table>
А теперь возьмем за основу такой алогритм
1.Находим основную таблицу.
2.Считаем максимальное количество строк и столбцов которые могут находится в единичной строке\столбце основной таблицы.
3.Составляем массив.
Для данного примера масив у нас будет таков:
n |1 |2 |
3/1|3/2|4 |
значение n-показывает что значения массива [0,0] и [0,1] в данной вариации являются обединенными. В Идеальном варианте-предложил-бы хранить на месте n ссылку на ячейку, которая является последней в обединении.
Особых проблем в написании подобного скрипта не вижу.
 

BNS

Новичок
Aidan Pride
не, тут немного по-другому - не таблица-в-таблице, а одна за другой, поэтому массив м.б. $arry[tabl][x][y] или типа того, но это уже не принципиально. Самое для меня сейчас главное - хотябы написать скрипт для 1ой таблицы.

В инете кстате, толком ничего на эту тему нет, я даже удивлен... Может я плохо смотрел?

-~{}~ 26.11.05 21:07:

Народ! Помогите! Очень сильно надо раздобыть/написать этот скрипт!
 

gogan

Новичок
раскладываешь с помощью регулярки на строки. Для каждой строки раскладываешь на ячейки. С помощью этого тебе можно выделять сразу и значене, и параметры строки/ячейки. Потом пихаешь всё это в массив. В чём проблема? Колспаны тогда хранятся в паметре ячейки и не надо ничего выдумывать
 

BNS

Новичок
gogan
да вобщем то ничего, если бы я знал регулярку...
 
Сверху