如何将元素名称从Cust更改为Customer?
<Cust id="1">
<Name>aaaaaaaaaa</Name>
<Desc>bbbbbbbbbb</Desc>
</Cust>
当我使用以下声明时
select @myXml.query('/node()[1]/node()') for xml raw('Customer')
sql删除属性
<Customer>
<Name>aaaaaaaaaa</Name>
<Desc>bbbbbbbbbb</Desc>
</Customer>
答案 0 :(得分:1)
您可以使用替换:
replace(replace(@YourXml, '<Cust id', '<Customer id)', '</Cust>', '</Customer>')
这是相当安全的,因为<
作为XML中的数据无效,它将显示为<
或ASCII或UNICODE序列。
答案 1 :(得分:1)
试试这个:
SELECT
@myXml.value('(/Cust/@id)[1]', 'int') AS '@id',
@myXml.query('/node()[1]/node()')
FOR XML PATH('Customer')
给我一个输出:
<Customer id="1">
<Name>aaaaaaaaaa</Name>
<Desc>bbbbbbbbbb</Desc>
</Customer>
使用FOR XML PATH
,您可以相当轻松地“恢复”转换中丢失的属性。