【问题标题】:Entity references and lxml实体引用和 lxml
【发布时间】:2010-03-26 23:54:11
【问题描述】:

这是我的代码:

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 给我'&amp;test;',即原始实体引用?

【问题讨论】:

    标签: python xml lxml


    【解决方案1】:

    “未解析”实体保留为元素节点sub的子节点

    >>> print d2.find('/sub')[0]
    &test;
    >>> d2.find('/sub').getchildren()
    [&test;]
    

    【讨论】:

    • 伊格纳西奥还有点不知道 ;)
    猜你喜欢
    • 2018-05-29
    • 2012-10-02
    • 2011-02-19
    • 2017-05-08
    • 1970-01-01
    • 2015-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多