-
Для примера возьмём страничку из книги Марка Пилгрима «Dive Into Python 3»: http://diveintopython3.org/whats-new.html
Пропущены все возможные теги: head, body, почти все закрывающие теги. Хотелось бы получить документ с закрытыми тегами.
Наверняка, это стандартная проблема имеющая решение. Или нет?
-
Да, вполне. Надо взять html5lib, распарсить документ HTML-парсером. Получится полное дерево (со всеми
<html>,<head>и прочим). Потом это дерево сериализовать XHTML-сериализатором из этой же библиотеки.Код на Питоне будет примерно такой:
from html5lib import HTMLParser, treewalkers, serializer parser = HTMLParser() doc = parser.parse(u'<title>Example</title><p>Hello, World!') tw = treewalkers.getTreeWalker('simpletree') print u''.join(serializer.XHTMLSerializer().serialize(tw(doc)))Выведет такое:
<html><head><title>Example</title></head><body><p>Hello, World!</p></body></html>Это, собственно, очень вкусная штука, которая изначально заложена в HTML5: для одного и того же дерева существуют равноправные сериализации в HTML и XHTML.
-
То, что нужно! И, действительно, очень красиво!
Большое спасибо!
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

