You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL中解析带属性的自闭合XML标签提取属性值问题咨询

解决方案

问题核心为原XPath表达式仅读取CHILD节点的内部文本,未指定读取属性值,调整XPath语法即可适配自闭合标签的属性读取需求,修正后的SQL如下:

select cast(xmlField as xml) xmlField into tmp from (
select '<Datas><CHILD value = "test"/></Datas>' xmlField
) tb
SELECT
xmlField.value('(Datas/CHILD/@value)[1]', 'nvarchar(max)') as Data
FROM tmp
drop table tmp

执行上述语句即可返回预期的test结果。

如果不需要临时表,也可以用简化写法直接处理业务表的对应字段:

SELECT 
    CAST(xmlField AS XML).value('(Datas/CHILD/@value)[1]', 'nvarchar(max)') AS Data
FROM 你的业务表名

补充说明:@是XPath中取节点属性的标准语法,和标签是否为自闭合格式无关,只要属性定义符合XML规范都可以正常读取。

内容的提问来源于stack exchange,提问作者Marc Pfister

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 03:09:02