如何使用Python解析XSD文件

如何解析下面的 XSD 以获取其中的 3 个名称<xsd:complexType name="Register-Type" abstract="true">

我想获取名称“measures”、“description”和“notes”,并将每个名称放入 csv 的一列中(没有其他信息,现在只有这 3 个名称显示为标题)。

我正在尝试使用 lxml,但我不知道如何进入我想要的特定复杂类型标签。

我尝试过的


from xml.etree import ElementTree

import csv



tree = ElementTree.parse('Omschema.xsd')


sitescope_data = open('Out.csv', 'w', newline='', encoding='utf-8')

csvwriter = csv.writer(sitescope_data)


#Create all needed columns here in order and writes them to excel file


def recurse(root):

    for child in root:

        recurse(child)

        print(child.tag)


    for event in root.findall('{http://www.w3.org/2001/XMLSchema}complexType'):

        event_data = []

        event_id = event.find('{http://www.w3.org/2001/XMLSchema}sequence')

        if event_id != None:

            event_id = event_id.text

        event_data.append(event_id)


        csvwriter.writerow(event_data)


root = tree.getroot()

recurse(root)

sitescope_data.close()


繁星点点滴滴
浏览 133回答 1
1回答

Cats萌萌

既然您标记了 BeautifulSoup,那么具体操作方法如下:import csvfrom bs4 import BeautifulSoupsoup = BeautifulSoup(your_xml, "xml")tag_names = soup.find("xsd:complexType", {"name": "Register-Type"})with open('data.csv', 'w') as f:&nbsp; &nbsp; headers = [tag['name'] for tag in tag_names.find_all("xsd:element")]&nbsp; &nbsp; writer = csv.DictWriter(f, fieldnames=headers)&nbsp; &nbsp; writer.writeheader()数据.csv:measures,description,notes
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python