解析美国专利商标局 XML 文件

2024-06-10 14:27:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将uspto的专利xml文件解析为csv。我阅读并尝试了各种方法。最近,我遇到了这个post 然而,我找不到解决办法 您可以找到我正试图解析的xml文件here 我也试过用美体素,但没有运气。在

这是我使用的代码

import xml.etree.ElementTree as x


path = r"C:\Users\XX\Downloads\ipg190423\ipg190423.xml"
d = []
s = ""
f = open(path)
for l in f:
    if l == "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n":
        if len(s)>0:
            d.append(s)
        s = ""
    s += l
d.append(s)

index = 0
for xm in d:
    root = x.fromstring(xm)
    for e in root.iter(tag="patent-"):
        print(e)
        index += 1
        filename = format(str(index) + ".xml")
        with open(filename, 'w') as f:
            f.write(x.tostring(e))

Tags: 文件pathinforindexifasroot
1条回答
网友
1楼 · 发布于 2024-06-10 14:27:32

我下载了其中一个文档,问题是它们不是有效的XML文档。它们由连接在一起的多个XML文档组成。基本结构是:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE us-patent-grant SYSTEM "us-patent-grant-v45-2014-04-03.dtd" [ ]>
<us-patent-grant>
.
.
.
</us-patent-grant>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE us-patent-grant SYSTEM "us-patent-grant-v45-2014-04-03.dtd" [ ]>
<us-patent-grant>
.
.
.
</us-patent-grant>

例如,在ipgb20190101_wk01.zip中,有7162个XML文档连接在一起。在解析这些数据之前,您必须编写代码以按顺序提取每个XML文档。在

更新

可以使用^{}命令将XML文档提取到单独的文件中:

^{pr2}$

这将为您提供文件patent-0000.xmlpatent-7126.xml(假设您使用了与我相同的示例数据)。在

相关问题 更多 >