gpt4 book ai didi

sql - 使用 SQL XPATH 查询获取 XML 元素名称和属性值

转载 作者:数据小太阳 更新时间:2023-10-29 02:12:18 25 4
gpt4 key购买 nike

给定一个 XML 类型的字符串,例如

declare @xml xml

SET @xml =
'<PO>
<Amount type="approved">10.00</Amount>
<Year type="">2013</Year>
<GeneralNotes>
<Note>
<NoteText type="instruction">CallVendor</NoteText>
<Date type="">1-1-2013</Date>
</Note>
<Note type="">
<NoteText type="instruction">ShipNow</NoteText>
<Date type="">2-2-2013</Date>
</Note>
</GeneralNotes>
</PO>'

我想获取每个元素及其属性(如果有的话)。我想要的输出(没有重复)是

ElementName   ElementAttribute

PO
Amount approved
Note instruction

我试过类似这行的代码

SELECT T.doc.query('fn:local-name(.)') 
FROM @xml.nodes('PO//*[1]') AS T(doc)

这会带来重复项,我不确定如何选择属性值。我只需要第一次出现(即。GeneralNotes/Note[1])。我有一个包含许多其他元素名称的大文件,所以我不想单独解析它们。

最佳答案

SELECT DISTINCT
T.doc.value('fn:local-name(..)[1]', 'nvarchar(max)') as ElementName,
T.doc.value('.', 'nvarchar(max)') as ElementAttribute
FROM @xml.nodes('PO//@*[1]') AS T(doc)
WHERE T.doc.value('.', 'nvarchar(max)') <> ''

结果:

ElementName     ElementAttribute
--------------- ----------------
Amount approved
NoteText instruction

关于sql - 使用 SQL XPATH 查询获取 XML 元素名称和属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20011458/

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