Ссылки на сущность и lxml

Вот код, который я имею:

from cStringIO import StringIO
from lxml import etree

xml = StringIO('''<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY test "This is a test">
]>
<root>
  <sub>&test;</sub>
</root>''')

d1 = etree.parse(xml)
print '%r' % d1.find('/sub').text

parser = etree.XMLParser(resolve_entities=False)
d2 = etree.parse(xml, parser=parser)
print '%r' % d2.find('/sub').text

Вот вывод:

'This is a test'
None

Как я заставляю lxml давать мне '&test;', т.е. необработанная ссылка на сущность?

9
задан Ignacio Vazquez-Abrams 26 March 2010 в 15:14
поделиться

1 ответ

"Неразрешенная" сущность оставлена в качестве дочернего узла узла элемента sub

>>> print d2.find('/sub')[0]
&test;
>>> d2.find('/sub').getchildren()
[&test;]
19
ответ дан 4 December 2019 в 11:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: