使用DTD解析USPTO数据的目的是什么

时间:2014-07-29 14:30:36

标签: python xml-parsing dtd

我正在尝试解析由Google托管的USPTO批量文件。这样做我遇到了DTD文件。经过一些研究,我了解到这些文件基本上定义了模式,并可以根据它确定xml是否有效。我不明白这些是如何帮助我解析文件的。我已经看过几篇博文(12)和this paper关于人们如何使用这些博文,但我不了解如何使用它们或为什么。

我当前的解析方法只是使用Beautiful Soup来查找标签,但如果有更好/更有效的方式我愿意这样做。

这是我目前做法的一小部分:

def getRefInfo(ref):
  data = {}
  data["Country"] = ref.find("country").text
  data["Date"] = ref.find("date").text
  data["ID"] = ref.find("doc-number").text

  return data 



soup = BeautifulSoup(xml, 'lxml')
bibData= soup.find("us-bibliographic-data-grant")

ref = bibData.find("publication-reference")
if ref != None:
    print getRefInfo(ref)

1 个答案:

答案 0 :(得分:0)

使用DTD在将其输入工作流管道之前验证输入是否正常。考虑到XML可以分段发送,它是一种保证你永远不会处理部分记录的机制(除非你真的想要)

当您处理 pull 解析器与 DOM 解析器时,差异真正发挥作用。

DTD也可用于生成智能对象'您读取的XML被转换为具有行为的对象树。这是非常先进的技术,大多数python模块都支持这种技术,但确实存在(并且该作者认为这是XML操作的优雅解决方案。 。)