xml解析——Python从xml中解析过程指令



我使用Python来查看这些文件:每个zip文件都包含一个xml文件,其基本名称与zip文件相同。每个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命令忽略任何注释或处理指令。所以现在的问题是,有没有一个解析器不做这个?

答案是:前面带问号的标签不是真正的标签。它们是"处理指令"。根据ElementTree的文档,在解析过程中忽略处理指令。

相关内容

  • 没有找到相关文章

最新更新