LXML:获得 header/top-level 评论

LXML: Get header/top-level comment

最好使用 LXML 库,有没有办法在 XML 结构解析后访问其最顶部的注释。我想避免解析纯文本 "myself".

这个例子让我对它很感兴趣,我猜:)

<?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) -->

所以我希望有一个函数可以return最后一行的注释。 当然,对于如何很好地处理这个问题的任何其他想法,我也很高兴。

您可以使用 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) -->]