SQL 从非 xml 类型的列中获取 xml 数据属性和值
SQL fetch xml data attribute and values from non xml type column
如何使用 SQL 从非 xml 类型的列中检索 xml 类型的数据
我有一个 table 和里面的一列
xml 是 ntext
类型的列
xml列数据示例如下
<message to="4075@abc.myftp.org" type="chat" from="5082@abc.myftp.org/e76bea0f">
<body>james bond</body>
<active xmlns="http://jabber.org/protocol/chatstates" />
</message>
我想获取 "to"、"from" 属性值和标签值
请推荐
您在 xml 中遗漏了结束标记 </message>
,但如果添加它,您可以使用 value()
函数:
declare @temp table (data ntext)
insert into @temp (data)
select '<message to="4075@abc.myftp.org" type="chat" from="5082@abc.myftp.org/e76bea0f">
<body>james bond</body>
<active xmlns="http://jabber.org/protocol/chatstates" />
</message>'
select
c.data.value('message[1]/@to', 'nvarchar(max)')
from @temp as t
outer apply (select cast(data as xml)) as c(data)
如何使用 SQL 从非 xml 类型的列中检索 xml 类型的数据 我有一个 table 和里面的一列 xml 是 ntext
类型的列xml列数据示例如下
<message to="4075@abc.myftp.org" type="chat" from="5082@abc.myftp.org/e76bea0f">
<body>james bond</body>
<active xmlns="http://jabber.org/protocol/chatstates" />
</message>
我想获取 "to"、"from" 属性值和标签值
请推荐
您在 xml 中遗漏了结束标记 </message>
,但如果添加它,您可以使用 value()
函数:
declare @temp table (data ntext)
insert into @temp (data)
select '<message to="4075@abc.myftp.org" type="chat" from="5082@abc.myftp.org/e76bea0f">
<body>james bond</body>
<active xmlns="http://jabber.org/protocol/chatstates" />
</message>'
select
c.data.value('message[1]/@to', 'nvarchar(max)')
from @temp as t
outer apply (select cast(data as xml)) as c(data)