【发布时间】:2014-09-28 11:15:13
【问题描述】:
我正在尝试解析托管在 Here 上的 USPTO 数据。我还检索了与文件关联的 DTD。我的问题是:是否可以使用这些来解析文件,或者它们仅用于验证?我已经使用一个作为解析某些文档的指导方针,但是按照我的方式进行操作需要为每个 DTD 使用单独的解析器。这是我目前如何做的一个示例 sn-p。
# <!ELEMENT document-id (country, doc-number, kind?, name?, date?)>
def parseDocumentId(ref):
data = {}
data["Country"] = ref.find("country").text
data["ID"] = ref.find("doc-number").text
if ref.find("date") != None:
d= ref.find("date").text
try:
date = datetime.strptime(d, "%Y%m%d").date()
except:
date= None
data["Date"]= date
if ref.find("kind") != None:
data["Kind"]= ref.find("kind").text
if ref.find("name") != None:
data["Name"]= ref.find("name").text
return data
这种方式对我来说似乎很手动,所以我很好奇是否有更好的方法来帮助自动化流程
注意:我使用 lxml 进行解析。
【问题讨论】:
-
通过解析,你的意思是把xml映射成一个对象(某种DOM)吗?
-
我的目标是能够提取文件中几乎所有的信息并将它们存储在数据库中。我目前通过使用 lxml.etree 以树形式获得数据。我希望有一种方法可以使用 DTD 引导我通过树以提取信息