在Python lxml.etree中为什么撇号不会像其他字符一样自动转义?

时间:2015-03-10 20:21:10

标签: python xml lxml

我想知道为什么撇号不会像其他角色一样自动转义?

例如,在创建xml文件的时刻:

<转换为&lt;>转换为&gt;,但'未转换为&apos;。有特殊原因吗?

此刻我的解决方案是使用tostring()保存文件,然后应用替换,但是,我认为这是一个糟糕而肮脏的解决方案,因为我需要添加XML的标题{{1}用硬编码。我有下一个代码:

<?xml version='1.0' encoding='UTF-8'?>

修改

我在element = Element('Root') element.set('Version', '1.0') element.set('test0', a['zero']) # the content is '<' element.set('test1', a['one']) # the content is '>' element.set('test2', a['two']) # the content is '&' element.set('test3', a['three']) # the content is '"' # the content is O'Reilly, here is my problem element.set('test4', a['four']) tree = ElementTree(element) xmlfile = open('xmlfile.xml', 'wb+') tree.write(xmlfile, xml_declaration=True, encoding='UTF-8') xmlfile.close() 邮件列表中收到了这个答案:

因为不需要它? 有关类似的讨论,请参阅https://wiki.python.org/moin/EscapingXml

然而,我对此答案并不十分确信。

0 个答案:

没有答案