Рассмотрим следующее:
from lxml import etree
from StringIO import StringIO
x = """<?xml version="1.0" encoding="utf-8"?>\n<aa> â</aa>"""
p = etree.XMLParser(remove_blank_text=True, resolve_entities=False)
r = etree.parse(StringIO(x), p)
Это не получится с:
lxml.etree.XMLSyntaxError: Entity 'nbsp' not defined, line 2, column 11
Это потому, что resolve_entities=False
не игнорирует их, а просто не разрешает их.
Если я вместо этого использую etree.HTMLParser
, он создает теги html
и body
, плюс множество других специальных обработок, которые он пытается сделать для HTML
.
Как лучше всего получить текстовый дочерний элемент â
под тегом aa
с помощью lxml?