- 1
<item >1</item>
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−17
<item >1</item>
Чо, так можно?
Где здесь J, inkanus-gray?
> пробел после имени тега
Ну и зачем ты парсишь HTML регулярками?
А потом Сёма узнает что есть незакрытые таги и юникод и комментарии
> об мой сайт
У тебя сайт есть?
3.5 анона
А вообще, можно было бы и поспамить говнокод ссылкой. Глядишь, в конфе было бы больше 3.5 анонов неймфагов.
Хм, и так можно? Но по какой логике? Про открывающийся тэг проде Инканус разъяснил.
> из принципа буду добавлять везде пробелы
Мощный ультиматум. Уже вижу, как 3_14dar надевает кастет, шубу и едет в Сибирь.
>об мой сайт
Деревенский сортир обаме и меркель вход запрещен.jpg
Вероятно, разрешение на вставку пробелов появилось в процессе унификации. В XML для элемента без содержимого вместо такого кода: Разрешили писать такой код: А раз у открывающего тега и у «самозакрытого» тега пробелы разрешены, то почему бы их не разрешить у закрывающего.
Потому что раньше парсить HTML было проще, и статически проверять -- тоже.
А теперь можно случайно не закрыть таг, и узнать об этом через три месяца, когда всё поедет.
С другой стороны это же веб: в нем принято использовать максимально хуёвый инструмент из всех возможных.
Пропусти страничку через валидатор и будет счастье. "Случайно" оно не поедет, версия HTML указывается в DOCTYPE.
Правильно. Зачем иметь возможность проверять документ на валидность локально? Зачем там fast fail? Пусть это делает внешний сервис.
>>"Случайно" оно не поедет,
Случайно у тебя добавится текст на веб сайте, или будет другой резолюшен, и так как ты вообще не представляешь как и почему твой сайт работает (а если ты перепутал таги то ты не представляешь) то тебя ждет сюрприз.
Ты про вещи вроде tidy не слышал чтоли? Напиши себе интеграционный тест, который поднимает локальный сервер, запрашивает странички и валидирует на CI-сервере.
Во времена XHTML мне даже самый тупой IDE мог выстроить код в лесенку и подсветить красным пропущенный таг, в теперь мне нужно tidy использовать?
Какое у НЕ XML-based языка разметки преимущество кроме того, что дебилам с блокноатами сложно таги закрывать?
> Во времена XHTML
О каких временах XHTML ты говоришь? HTML изначально допускал незакрытые теги и кучу всяких вольностей. XHTML родился на волне увлечения XML, он никогда толком не был широко распространён. Он был настолько мертворождённым, что даже его создатели давно его забросили и пересели на HTML5.
Собственно, поэтому я и неправильно интерпретировал "раньше парсить html было проще".
Примерно о середине нулевых
>>что даже его создатели давно его забросили и пересели на HTML5.
Вопрос в том, зачем было разрешать HTML5 а не XHTML5?
Запретили бы незакрытые таги, сказали бы что с незакрытым тагом все переключается в legacy loose mode, где всякие ваши говномодные <input type="date" не работают, и через пять лет всё везде бы закрывалось.
А теперь я хочу распарсить доку по джанге и конвернуть в нужный мне формат, и не могу сделать это каким-нить XSLем, потмоу что половина тагов там не закрыта.
Я не могу вложить <ul> в <p>, потому что перед <ul> элемент <p> автоматически закроется. И это говно в популярных браузерах работает даже в режиме XHTML, хотя XHTML автозакрытия тегов не подразумевает.
Если указать правильный content-type (application/xhtml+xml ) и не закрыть таг, что IE покажет ошибку вместо страницы.
К сожалению в мире не более ноля сайтов используют этот приём.
Вероятно, по этой причине многие сервера возвращают text/html вместо application/xhtml+xml даже для XHTML.
------
Веб нужно запретить у хуям, и разработать WEB 3.0.
В нем будет специльный виртуальный машин, под который и верстать и писать можно будет на оче хорших языках
ЭТО ВЕЛЛ ФОРМД ЭКСЭМЭЛЬ
https://www.w3.org/TR/xml/#sec-starttags
Это _разные_ языки, прост тут они ведут себя одинаково
В главе 8 описан синтаксис HTML, в главе 9 — синтаксис XHTML (да, XHTML5 существует и даже поддерживается всеми современными браузерами, хотя общепризнанного DTD нет).
В главе 1.6 вообще разведён холивар:
https://www.w3.org/TR/html5/introduction.html#html-vs-xhtml
http://stackoverflow.com/questions/3314535/white-space-inside-xml-html-tags
Осталось узнать: кто это придумал и нахуя; какой либой автор высрал такой xml.
Ребята, давайте вспомним, что бывает после имени элемента. После имени элемента могут следовать атрибуты, отделённые от имени элемента и друг от друга пробелами, а точнее, цепочками, определяемыми такой регуляркой:
(в HTML ещё разрешён символ #xC).
А теперь внимание! Что будет, если атрибутов нет? Подсказка: после последнего атрибута разрешён разделитель подобно тому, как лишний разделитель элементов массива в некоторых языках.
это BNF
https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_form
С другой стороны регулярное выражение есть описание конечного автомата для разбора регулярной грамматики, а такой автомат и по BNF построить можно (и даже больше -- context free можно)
Так что квадрояйца это не регулярка, это КРУЧЕ чем регулярка
Прошу заметить, квадрояйца только с рекурсией при некоторых условиях круче, чем регулярка.
на самом деле это зависит от реализаци