我使用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的文档,在解析过程中忽略处理指令。