Про "мягкость" html
tidy?
Чем не устроил A quorum of developers have pitched in on a SourceForge project to maintain and further develop Dave Raggett's excellent HTML Tidy program. We have two primary goals. First, to provide a home where all the patches and fixes that folks contribute can be collected and incorporated into the program. Second, a library form of Tidy has been created to make it easier to incorporate Tidy into other software.И ни слова о том, что это такое и для чего оно надо.
Table of Contents
News
Documentation
Support
Executable binaries
License
Source code
Test cases
Release Process
Ты все же присмотрись к tidy. Правда, решает он совсем не твою задачу, он предназначен скорее для парсинга html форм, но вещь полезная.
Не, W3C не рулит, я тут посмотрел - КОНТРА говорит, что там сидят одни идиоты.
> Documentation
> Support
Сделать тычок мышкой религия не позволяет?
Сделать тычок мышкой gprs не позволяет, а Documentation - это немного нестандартно, всё равно, что говоришь ты девушке "линукс - это круто", она спрашивает "что такое линукс?" - а ты ей сразу "man".
> просто он в них некоторые инструкции обрабатывал - типа foreach, if, вывод значений итп.
Парсер, совмещённый с препроцессором? Нахрена?
Ты уверен, что это именно парсер?
> вот только хотелось бы свод правил "причёсывания" увидеть,
> чтобы не изобретать велосипед, который, к тому же, будет работать не так, как чужие.
Хочешь, чтобы я учил тебя правилам вёрстки, что ли?
Для этого уже написаны книги --- бери да читай.
Написал много и непонятно, возникает больше ответных вопросов.
Какая задача, вообще, решается?
Парсер --- это полупродукт, пользователю он не нужен.
---
...Я работаю антинаучным аферистом...
Оставить комментарий
kruzer25
У меня тут был парсер на пхп - строго говоря, произвольных текстов, просто он в них некоторые инструкции обрабатывал - типа foreach, if, вывод значений итп. Был он написан на регэкспах и глючил не по-детски (была куа хитростей, типа, элементы элементов массива, обрабатываемого по foreach, не могут называться так же, как и внешние переменные итп да ещё и тормозил страшно (можно было бы, конечно, написать посимвольный разбор, но тогда код вырос бы ну просто ужасно, и никто бы в нём не смог разобраться).Но обрабатываемые файлы были, по сути, просто html-ками с напиханными инструкциями (типа <table><foreach %row%><tr><td>{%val1%}</td><td>{%val2%}</td></tr></foreach></table>). И я решил (т.к. всё равно шаблоны эти писал и ещё один человек, для которого это тоже не составило бы труда) переписать парсер под разбор xml (точнее, под разбор дерева, полученного от xml_parse_into_struct) - сразу всё стало работать правильно, на порядок быстрее (хотя, мб, это я регэкспы так плохо оптимизировал появилась возможность добавить кучу новых фич без большой возни (которой я и воспользовался) - сейчас в шаблоны можно даже вынести довольно большую часть функционала из самих php-скриптов (которой, на самом деле, с самого начала было место в шаблонах)... всё ну просто отлично.
А тред этот я завёл вот по какой причине - тут КОНТРА говорил, каким должен быть правильный html - мне сегодня пришло в голову написать дополнительно "причёсыватель" html-документов, чтобы и из обычных "непричёсанных" html-ек можно было получать такие xml-файлы, которые обработает мой парсер. Я не буду давать КОНТРЕ повод обвинять меня в лени, и напишу этот обработчик сам - вот толкьо хотелось бы свод правил "причёсывания" увидеть, чтобы не изобретать велосипед, который, к тому же, будет работать не так, как чужие. То есть, я хочу знать, когда какой тэг можно закрывать, когда - нельзя, когда надо, итп - типа "если начался новый абзац, старый кончился; если началась таблица, абзац (если он был) закончился" итп.
Ну и ещё, конечно, хотелось бы, чтобы этот свод предоставил КОНТРА. Как самый осведомлённый. Полностью. Чтобы там были описаны все ситуации, которые только могут встретиться в текстовом документе, где беспорядочно напиханы html-тэги.