【问题标题】:Parsing uspto xml files解析 uspto xml 文件
【发布时间】:2019-04-27 21:38:01
【问题描述】:

我正在尝试将 uspto 的专利 xml 文件解析为 csv。我阅读并尝试了各种方法。最近,我遇到了这个post 但是,我找不到解决方案 您可以找到我要解析的 xml 文件 here 我也试过用beautifulsoup,但没有成功。

这是我使用的代码

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))

【问题讨论】:

  • 您应该展示一个 xml 示例以及您尝试从中解析的内容。
  • 文件确实太大,所以我分享了链接,所以链接中的任何压缩文件都可以,我尝试解析所有信息
  • Edit 你的问题并详细解释,在哪里你卡住了。

标签: python xml csv


【解决方案1】:

我下载了其中一个文档,但问题是它们不是有效的 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 文档。

更新

您可以使用csplit 命令将 XML 文档提取到单独的文件中:

csplit -f 'patent-' -b '%02d.xml' ipgb20190101.xml '/^<?xml /' '{*}'

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

【讨论】:

  • 您好,非常感谢,我应该使用 Python 吗?
  • 你可以!您只需要通读文件以查找标记新文档开始的&lt;?xml version="1.0" encoding="UTF-8"?&gt; 行。您可能想要做的是实施解决方案并在遇到特定技术问题时发布新问题。
猜你喜欢
  • 1970-01-01
  • 2014-07-05
  • 2019-09-18
  • 2011-11-20
  • 2014-08-23
  • 2019-02-02
  • 2012-01-01
  • 2014-03-01
  • 2018-09-23
相关资源
最近更新 更多