您不能使用xml.etree
,因为它的解析器会忽略注释(顺便说一下,这对于xml解析器来说是可以接受的行为)。但是,如果您使用(兼容)lxml库,则可以使用它,它允许您配置解析器选项。
from lxml import etree
parser = etree.XMLParser(remove_comments=False)
tree = etree.parse('input.xml', parser=parser)
# or alternatively set the parser as default:
# etree.set_default_parser(parser)
到目前为止,这将是最简单的选择。如果确实需要使用xml.etree,则可以尝试连接自己的解析器,尽管即使这样,注释也未得到正式支持:看看这个示例(来自xml.etree的作者)(似乎仍然可以使用) python 2.7)