如何将XSD文件中的类型枚举信息提取至指定格式电子表格?
高效提取XSD枚举数据到表格的方法
方法1:用Excel Power Query(适合Excel用户,无需额外工具)
因为你已经熟悉Excel,Power Query是最直接的方案,步骤如下:
- 打开Excel,点击「数据」选项卡 → 「获取数据」→ 「从文件」→ 「从XML」,选择你的XSD文件。
- 在Power Query编辑器中,找到所有
simpleType节点(对应XSD里的xsd:simpleType),点击展开按钮(🔽),选择展开name属性和内部的restriction节点。 - 展开
restriction里的enumeration列表,得到一行对应一个枚举项的结构。 - 展开每个
enumeration的value属性和内部的annotation→documentation节点,提取文本内容。 - 重命名列名为「Name」「Value」「Description」,最后点击「关闭并上载」,即可生成目标格式表格。
方法2:用XSLT转换生成CSV(适合批量处理)
XSD本质是XML格式,可通过XSLT样式表直接转换为CSV文件,步骤:
- 创建新文本文件,粘贴以下代码,保存为
xsd-enum-to-csv.xsl:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsl:output method="text" encoding="UTF-8"/> <xsl:template match="/"> <xsl:text>Name|Value|Description </xsl:text> <xsl:for-each select="//xsd:simpleType"> <xsl:variable name="typeName" select="@name"/> <xsl:for-each select="xsd:restriction/xsd:enumeration"> <xsl:value-of select="$typeName"/> <xsl:text>|</xsl:text> <xsl:value-of select="@value"/> <xsl:text>|</xsl:text> <xsl:value-of select="xsd:annotation/xsd:documentation"/> <xsl:text> </xsl:text> </xsl:for-each> </xsl:for-each> </xsl:template> </xsl:stylesheet>
- 使用支持XSLT转换的工具(如VS Code的XML插件、本地XML处理器Saxon),将XSD文件与该XSLT文件结合,生成CSV后直接用Excel打开即可。
方法3:用Python脚本(适合超大量数据)
如果数据量极大(上万条级别),Python脚本处理效率更高,步骤:
- 安装解析XML的
lxml库:pip install lxml - 创建Python脚本
parse_xsd_enum.py,粘贴以下代码:
from lxml import etree # 加载目标XSD文件 tree = etree.parse("你的XSD文件路径.xsd") ns = {"xsd": "http://www.w3.org/2001/XMLSchema"} # 初始化输出内容 output_lines = ["Name|Value|Description"] # 遍历所有枚举类型节点 for simple_type in tree.xpath("//xsd:simpleType", namespaces=ns): type_name = simple_type.get("name") # 遍历每个枚举项 for enum_item in simple_type.xpath(".//xsd:enumeration", namespaces=ns): enum_value = enum_item.get("value") enum_desc = enum_item.xpath(".//xsd:documentation/text()", namespaces=ns)[0] output_lines.append(f"{type_name}|{enum_value}|{enum_desc}") # 写入CSV文件 with open("enum_output.csv", "w", encoding="utf-8") as f: f.write("\n".join(output_lines))
- 替换脚本中的XSD文件路径,运行脚本后,生成的
enum_output.csv可直接用Excel打开。
内容的提问来源于stack exchange,提问作者Joe Squalo
相关产品推荐
相关产品推荐

