最好使用LXML库,一旦解析了注释,便可以在XML结构的最顶部访问注释。我想避免解析纯文本“我自己”。
这是一个使我对此很感兴趣的例子,我想:)
<?xml version="1.0"?>
<!DOCTYPE pathway SYSTEM "https://www.kegg.jp/kegg/xml/KGML_v0.7.2_.dtd">
<!-- Creation date: Jan 11, 2019 11:48:16 +0900 (GMT+9) -->
所以我希望有一个可以在最后一行返回注释的函数。 当然,我对如何很好地处理此问题还有其他想法感到满意。
答案 0 :(得分:2)
您可以使用XPath comment()
获取评论节点。更具体地说,通过使用/comment()[1]
查询,您只能在文档节点中获得第一个注释。这是一个自包含的示例:
>>> raw = '''<?xml version="1.0"?>
... <!DOCTYPE pathway SYSTEM "https://www.kegg.jp/kegg/xml/KGML_v0.7.2_.dtd">
... <!-- Creation date: Jan 11, 2019 11:48:16 +0900 (GMT+9) -->
... <root>
... <child>content</child>
... <!-- Comment 2 -->
... </root>
... <!-- Comment 3 -->'''
>>> from lxml import etree as et
>>> root = et.fromstring(raw)
>>> first_comment = root.xpath("/comment()[1]")
>>> print(first_comment)
[<!-- Creation date: Jan 11, 2019 11:48:16 +0900 (GMT+9) -->]