Я пытаюсь проанализировать массив файлов USPTO, размещенных в Google. При этом я наткнулся на файлы DTD. После некоторых исследований я понимаю, что эти файлы в основном определяют схему и могут определить, действителен ли xml в соответствии с этим. Чего я не понимаю, так это того, как они на самом деле помогают мне анализировать файлы. Я видел несколько сообщений в блогах (1, 2) и этот документ о том, как люди их используют, но я не понимаю, как их использовать и почему.
Мой Текущий подход к синтаксическому анализу - просто использовать 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)