LXML:获取标头/顶级注释

时间:2019-01-14 10:05:52

标签: python xml lxml

最好使用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) -->

所以我希望有一个可以在最后一行返回注释的函数。 当然,我对如何很好地处理此问题还有其他想法感到满意。

1 个答案:

答案 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) -->]
相关问题