gpt4 book ai didi

sql-server - 如何获取 XML 节点中的 XML 属性列表

转载 作者:行者123 更新时间:2023-12-04 12:01:37 26 4
gpt4 key购买 nike

我有一个场景,我在 sql 表中获得的 XML 数据可能具有与特定元素相关的动态属性列表。例如,XML 可以是

<XML><row ID = 1 x1="x1value" x2 = "x2value" /></XML>
<XML><row ID = 10 X3 = "x3value" x10 = "x10value" /></XML>
<XML><row ID = 5 x1="x1value2" x10 = "x10value2" /></XML>

我必须分别处理每个 XML 数据,并使用 MSSQL 查询(如键值对)动态切碎和获取每个属性的值到临时表中或将其展平为关系模型,如
SELECT x1, x2 INTO #temp FROM xml...

如果您知道 XML 中存在的属性,我研究的所有示例都显示了提取的方法。在我的示例中,我不知道元素中存在哪些属性。

任何帮助将不胜感激 :)

最佳答案

尝试这个,

DECLARE @XML as xml

SET @XML = '<XML><row ID="1" x1="x1value" x2="x2value" /></XML>'

SELECT
k.value('@ID','BIGINT') AS ID,
b.value('local-name(.)','VARCHAR(50)') AS ColumnName, -- get attribute name
b.value('.','VARCHAR(MAX)') AS Value -- get attribute value
FROM @XML.nodes('/XML/row') p(k)
CROSS APPLY k.nodes('@*') a(b)

输出:
ID  ColumnName   Value    
--- ------------ -----------
1 ID 1
1 x1 x1value
1 x2 x2value

希望这可以帮助

关于sql-server - 如何获取 XML 节点中的 XML 属性列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39532615/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com