Python 3.x 从Python中的XSD文件中提取带有文档的枚举
我正试图编写一个函数,从XSD文件中获取一些值的描述,其结构如下Python 3.x 从Python中的XSD文件中提取带有文档的枚举,python-3.x,xsd,xmlschema,Python 3.x,Xsd,Xmlschema,我正试图编写一个函数,从XSD文件中获取一些值的描述,其结构如下 中心名单 中心列表寄存器 中心类型 自有中心 外部中心 联合中心 其他 使用解开 import untangle xsd_file = "C:\\code\\python\\xsd\\test.xsd" obj = untangle.parse(xsd_file) res = obj.xs_schema.xs_element.xs_complexType.xs_sequence.xs_element.x
中心名单
中心列表寄存器
中心类型
自有中心
外部中心
联合中心
其他
使用解开
import untangle
xsd_file = "C:\\code\\python\\xsd\\test.xsd"
obj = untangle.parse(xsd_file)
res = obj.xs_schema.xs_element.xs_complexType.xs_sequence.xs_element.xs_complexType.xs_sequence.xs_element.xs_simpleType.xs_restriction.xs_enumeration
最后,我使用LXML和XMLSchema名称空间解决了我的问题
def get_value(self, field: str, code: str, file: str):
desc = ""
xsd_xml = ET.parse(file)
search_elem = f".//{{http://www.w3.org/2001/XMLSchema}}element[@name='{field}']"
element = xsd_xml.find(search_elem)
search_enum = f".//{{http://www.w3.org/2001/XMLSchema}}enumeration[@value='{code}']"
enumeration = element.find(search_enum)
if enumeration is not None:
documentation = enumeration.find(".//{http://www.w3.org/2001/XMLSchema}documentation")
desc = documentation.text
else:
desc = "N/A"
return desc
请编辑代码段并正确缩进XSD。XSD为“原样”。我在这里收到了XSDformat@kimbert我刚把文件缩进