xpath_ValidateXML函数
函数名:xpath_XML有效性验证 / xpath_ValidateXML
会员等级:免费版(Free) - 无需会员即可使用
函数功能
验证输入的XML字符串或XML文件是否为合法的XML格式,返回布尔值TRUE或FALSE,适用于XML数据导入前校验、接口数据格式检查、配置文件完整性验证等场景。
参数规范
| 参数名 | 类型 | 必填 | 示例 | 特殊说明 |
|---|---|---|---|---|
xml | String | 是 | "<books><book/></books>" | XML格式的文本或XML文件路径(自动判断) |
使用案例
验证合法XML字符串
问题描述:检查XML字符串格式是否正确 公式演示:
excel
=xpath_XML有效性验证("<books><book id='1'/><book id='2'/></books>")输出效果:
text
TRUE验证非法XML字符串
问题描述:检查标签未闭合的XML字符串 公式演示:
excel
=xpath_XML有效性验证("<books><book id='1'><book>")输出效果:
text
FALSE验证带命名空间的XML
问题描述:检查包含命名空间的XML是否合法 公式演示:
excel
=xpath_XML有效性验证("<books xmlns='http://example.com/books'><book id='1'/></books>")输出效果:
text
TRUE验证XML文件路径
问题描述:检查本地XML文件是否为合法格式 公式演示:
excel
=xpath_XML有效性验证("D:\data\config.xml")输出效果:
text
TRUE验证空XML
问题描述:检查空字符串的XML有效性 公式演示:
excel
=xpath_XML有效性验证("")输出效果:
text
FALSE技术说明
实现原理
- 根据输入参数自动判断是XML字符串还是文件路径
- 若为XML字符串,使用
XmlDocument.LoadXml()方法尝试加载 - 若为文件路径,使用
XmlDocument.Load()方法尝试加载 - 加载成功返回
TRUE,加载过程中抛出任何异常则返回FALSE - 仅验证XML格式(well-formed)是否正确,不验证XML Schema(XSD)约束
格式校验范围
本函数验证以下XML格式规范:
| 校验项 | 说明 |
|---|---|
| 根元素存在 | XML文档必须有且仅有一个根元素 |
| 标签闭合 | 所有开始标签必须有对应的结束标签或自闭合 |
| 标签嵌套正确 | 标签必须正确嵌套,不可交叉 |
| 属性值引号 | 属性值必须用单引号或双引号包裹 |
| 转义字符 | 特殊字符(<、>、&等)必须正确转义 |
| 命名规范 | 元素名和属性名须符合XML命名规范 |
输入模式自动判断
- 当输入参数以合法文件路径形式提供(如
D:\data\config.xml)时,按文件路径加载XML - 当输入参数以
<开头的XML标签内容时,按XML字符串解析 - 自动判断逻辑确保两种输入方式无缝切换
异常处理
| 错误场景 | 返回值 |
|---|---|
| XML格式不合法 | FALSE |
| 标签未闭合 | FALSE |
| 文件路径不存在或不可读 | FALSE |
| 参数为空或null | FALSE |
| XML字符串过长或内存不足 | FALSE |
扩展应用
与IF函数结合做数据导入校验
excel
=IF(xpath_XML有效性验证(A1), "格式正确,可导入", "XML格式错误,请检查") // A1中为XML字符串批量校验XML文件有效性
配合文件路径单元格引用,可批量校验多个XML文件的格式有效性,适用于数据迁移前的格式检查、接口联调时的报文校验、配置文件部署前验证等场景。
注:本函数为免费功能,支持XML字符串和文件路径两种输入方式,在WPS 2019+和Excel 365中测试通过。