3

我正在使用 Python 的 ElementTree 解析一个 xml 文件,如下所示:

et = ElementTree(file=file("test.xml"))

test.xml 以几行 xml 注释开头。

有没有办法从 et 那里得到这些评论?

4

2 回答 2

4

对于 ElementTree 1.2.X,有一篇关于使用 ElementTree 阅读处理说明和评论 的文章( http://effbot.org/zone/element-pi.htm )。


编辑:

另一种方法是使用实​​现 ElementTree API 的lxml.etree 。来自lxml.etree 的 ElementTree 兼容性的引用

ElementTree在解析 XML 时会忽略注释和处理指令,而etree 会将它们读入并分别将它们视为 Comment 或 ProcessingInstruction 元素。

于 2009-02-12T12:55:05.200 回答
0

是的,有办法。

from xml.etree import ElementTree

def parseXml (fn):
    try:
        target = ElementTree.TreeBuilder (insert_comments=True)
        parser = ElementTree.XMLParser(target=target, encoding='utf-8')
        et = ElementTree.parse (fn, parser)
    except Exception as e:
        print ("%s: %s" % (fn, str (e)))
        return

    for el in et.getroot ():
        print (el)

同样适用于处理指令 (ElementTree.PI),仅当 insert_pis=true 时,它​​们才会插入到结果结构中。

于 2020-05-07T07:39:36.177 回答