0

我正在使用 Python 来查看这些文件: 每个 zip 都包含一个与 zip 文件具有相同基本名称的 xml 文件。每个 xml 文件是数千个单独的 xml 文件的串联,我已将它们分离成单独的文件。其中一些 XML 文件有一个看起来像这样的标签 我在解析树中找不到那些。到目前为止,我使用以下代码:

import os
import xml.etree.cElementTree as cET


fname = 'extracted_xmls/ipg140107/1163_G_08622343.xml'

parsed = cET.parse(fname)
root = parsed.getroot()
if root.tag == "us-patent-grant":
    bibref = root.find('us-bibliographic-data-grant')
    pubref = bibref.find('publication-reference')
    prefix = "G"
elif root.tag == "sequence-cwu":
    pubref = root.find('publication-reference')
    prefix = "S"
else:
    print fname, "...uncoded tag"

for g in root.iter():
    if g.tag == 'description':
        print g.tag
        for ga in g.iter():
            print ga.tag

            for g in root.findall('?GOVINT'):
                print g

但是没有出现。我认为这些前面带有问号的特殊标签称为“处理指令”,但我不知道如何提取它们。任何注释、指针,尤其是用于遍历这些内容的代码片段都将不胜感激。

elementTree 的文档说 parse 命令忽略任何注释或处理指令。所以现在的问题是 - 有没有不这样做的解析器?

4

1 回答 1

0

答案是这样的:前面有问号的标签并不是真正的标签。它们是“处理指令”。根据 ElementTree 的文档,在解析过程中会忽略处理指令。

于 2015-06-03T15:53:25.120 回答