вариант через объектную модель документа
insomnia 22.03.2007 01:05
вариант примерно как DOM в javascript
очень, кстати, повезло, что скриптовая система позволяет создавать объекты и делать split ;)
есть кусок html
<table>
<tr>
<td>
ячейка
<img src="test.jpg" />
</td>
</tr>
</table>
нужно разделить по символу <
получится массив
table>
tr>
td>ячейка
img src="text.jpg" />
/td>
/tr>
/table>
каждая строка делится дальше по символу >
получаются 2 части:
1. имя тэга + аттрибуты
2. текст
из первой части достается имя тэга
каждый тэг помечается "тип"
1. открывающийся <table>
2. simpleType <img ... />
3. закрывающийся </table>
после разборки html получается массив тэгов, их нужно превратить в дерево узлов, при этом закрывающиеся тэги удаляются
узел - то же, что и тэг, только содержит другие узлы
получается цепочка узлов:
table содержит tr содержит td ...
для вырезания части html дерево узлов обходится рекурсивно от корня по всем ветвям
при этом подсчитывается, какой объем занимает каждая ветка
те ветки, которые не укладываются в указанный объем срезаются
после срезания не нужного дерево узлов преобразуется обратно к html
если нужно, пример на Парсере могу отправить по почте или выложить на форуме