Я пытаюсь разобрать этот XSD-файл, в настоящее время пытающийся в python, поймать имя элемента и описание данных.
Пример XSD:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="07112016">
<xs:annotation>
<xs:documentation>Level 1: top level of Procurement Data Standard for a procurement instrument document.</xs:documentation>
</xs:annotation>
<xs:element name="ProcurementDocument">
<xs:annotation>
<xs:documentation>The root element for any procurement instrument document</xs:documentation>
Здесь он будет захватывать name: ProcurementDocument
и desc:The root element for any procurement instrument document
.
здесь - это дополнительные данные, где я пытался получить их с помощью регулярного выражения.У меня был больший успех, когда я уменьшил , чтобы все это было на одной линии, но все же не тянуло каждый экземпляр.
Вот мой полный код, который я пытался использовать, чтобы получить все случаи из моего минимизированного XSD, но нашел только ~ 120 из ~ 1500, которые я пытался найти.
import re
import pandas as pd
df = pd.DataFrame({'Names': [ ], 'Description': [ ]})
search_str = r"name=\"(?P<name>\w+)\"\>[\w\<\/\.\>\d:]+documentation\>(?P<desc>[\w\s\.]+)\<\/"
file1 = 'mini_text.xml'
with open(file1, 'r') as f:
xml_string = f.read()
idx = 0
for m in re.finditer(search_str, xml_string):
df.loc[idx, 'Names'] = m.group('name')
df.loc[idx, 'Description'] = m.group('desc')
idx += 1
df.to_csv('output.txt', index=False, sep="\t")