Python从XML

时间:2015-06-02 12:57:22

标签: python xml-parsing processing-instruction

我正在使用Python查看these files内部: 每个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命令忽略任何注释或处理指令。所以现在的问题是 - 是否有解析器没有这样做?

1 个答案:

答案 0 :(得分:0)

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