【问题标题】:Modify xml element name in SQL Server在 SQL Server 中修改 xml 元素名称
【发布时间】:2011-02-25 15:03:02
【问题描述】:

如何将元素名称从客户更改为客户?

<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>

【问题讨论】:

    标签: sql xml sql-server-2005


    【解决方案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,您可以相当轻松地“恢复”在转换中丢失的属性。

    【讨论】:

      【解决方案2】:

      你可以使用替换:

      replace(replace(@YourXml, '<Cust id', '<Customer id)', '</Cust>', '</Customer>')
      

      这是相当安全的,因为&amp;lt; 作为 XML 中的数据无效,它会显示为 &amp;lt; 或 ASCII 或 UNICODE 序列。

      【讨论】:

      • 这是一种非优雅的方法。其他想法?
      • @chomik:SQL Server 中的 XML 修改支持完全是“非宽限”的。考虑做这个客户网站。 :)
      猜你喜欢
      • 2014-01-27
      • 2019-09-11
      • 1970-01-01
      • 2018-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多