我已经在 TSQL 中构建了一些 XML。
declare @requestXML xml
set @requestXML = (
select @dataXML
for xml raw ('rtEvent')
我现在的一般输出遵循类似这样的模式:
<rtEvent>
<ctx>
.....
</ctx>
</rtEvent>
我现在想做的是向 rtEvent 根添加一些属性和值 元素节点,但我不确定如何实现它。
我查看了 XML 对象的修改方法并观察了插入、替换值和删除操作,但似乎无法弄清楚如何使用它们中的任何一个来实现我想要的结果。
基本上,我希望能够修改根节点以反射(reflect)如下内容:
<rtEvent type="customType" email="someaddress@domain.com"
origin="eCommerce" wishedChannel="0" externalId="5515">
<ctx>
...
</ctx>
</rtEvent>
我应该使用文档化的 XML.Modify 还是有更好的方法?应该怎么做?
最佳答案
以防万一您想查看修改方法的方法:
DECLARE @requestXML XML = '<rtEvent><ctx>...</ctx></rtEvent>'
SET @requestXML.modify(
'insert
(
attribute type {"customeType"},
attribute email {"someaddress@domain.com"},
attribute origin {"eCommerce"},
attribute wishedChannel {"0"},
attribute externalId {"5515"}
)
into (/rtEvent)[1]')
SELECT @requestXML
它返回这个:
<rtEvent type="customeType" email="someaddress@domain.com" origin="eCommerce" wishedChannel="0" externalId="5515">
<ctx>...</ctx>
</rtEvent>
关于sql-server - 如何使用 TSQL 将属性添加到现有的根 XML 节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39250492/