小编Fla*_*Man的帖子

OPENXML 使用元素和属性名称获取内容

在此 SQL Server OPENXML 示例中:

declare @xmldata xml    

set @xmldata = 
'<?xml version="1.0"?>
<wddxPacket version="1.0">
    <data>
        <var dimension="task"><string>Task 1</string></var>
        <var dimension="startdate"><string>2020-11-14</string></var>
    </data>
    <data>
        <var dimension="startdate"><string>2020-11-15</string></var>
        <var dimension="task"><string>Task 2</string></var>
    </data>
</wddxPacket>'

DECLARE @hDoc int
EXEC sp_xml_preparedocument @hDoc OUTPUT, @xmldata

SELECT *
FROM OPENXML(@hDoc, '//wddxPacket/data',2)
        WITH(
            task          varchar(200) 'var[1]/string',
            startdate     varchar(200) 'var[2]/string'
    )

EXEC sp_xml_removedocument @hDoc
Run Code Online (Sandbox Code Playgroud)

这是当前的输出:

task         startdate
------       ----------
Task 1       2020-11-14
2020-11-15   Task 2   
Run Code Online (Sandbox Code Playgroud)

但我真的想要这个输出:

task         startdate
------       ----------
Task 1       2020-11-14
Task 2       2020-11-15
Run Code Online (Sandbox Code Playgroud)

为了识别内容,我不能单独使用“var”,因为所有感兴趣的元素都被命名为“var”。我不能使用位置 [1] 或 [2],因为位置编号在 …

xml sql-server

6
推荐指数
1
解决办法
237
查看次数

标签 统计

sql-server ×1

xml ×1