
图1 向XML中插入节点
(2)插入多个元素到文档中
在下面的示例中,将<title>和<author>元素插入到了item节点中。元素之间使用逗号分隔,并包含在括号中。
DECLARE @myDoc xml
SET @myDoc = '<root>
<item ID="1">
</item>
</root>'
SELECT @myDoc
SET @myDoc.modify('
insert (
<title>SQL Server 2005开发宝典</title>,
<author>张洪举</author>
)
into (/root/item)[1]');
SELECT @myDoc
GO
(3)插入属性到文档中
在下面的示例中,向XML文档中插入了多个属性。每次插入属性后,SELECT语句都会显示结果,最终执行结果如图2所示。
DECLARE @myDoc xml
SET @myDoc = '<root>
<item ID="1">
<title>Ajax实战</title>
<author>张洪举</author>
</item>
</root>'
SELECT @myDoc
SET @myDoc.modify('
insert attribute ShipTo {"广州"}
into (/root/item[@ID=1])[1]');
SELECT @myDoc
-- 通过一个sql变量指定要插入属性ShipDate的值
DECLARE @ShipDate char(11)
SET @ShipDate='2006-01-23Z'
SET @myDoc.modify('
insert attribute ShipDate {sql:variable("@ShipDate") cast as xs:date ?}
into (/root/item[@ID=1])[1]') ;
SELECT @myDoc
-- 插入多个属性,属性之间使用逗号分隔,并包含在括号内
SET @myDoc.modify('
insert (
attribute PostCode {"253020" },
attribute Weight {"1.5"}
)
into (/root/item[@ID=1])[1]');
SELECT @myDoc
GO

图2插入属性到XML中
(4)插入注释节点
在下面的示例中,将注释节点插入到ID为2的item节点中<title>元素的后面。
DECLARE @myDoc xml
SET @myDoc = '<root>
<item ID="1">
<title>Ajax实战</title>
<author>张洪举</author>
</item>
<item ID="2">
<title>ASP.NET实战</title>
<author>卢桂章</author>
</item>
</root>'
SET @myDoc.modify('
insert <!-- 注释 -->
after (/root/item[@ID=2]/title)[1]');
SELECT @myDoc
GO
插入注释后XML的内容如下:
<root> <item ID="1"> <title>Ajax实战</title> <author>张洪举</author> </item> <item ID="2"> <title>ASP.NET实战</title> <!-- 注释 --> <author>卢桂章</author> </item> </root>
(5)使用CDATA部分插入数据
当插入的文本中包含有XML无效字符(如“<”或“>”)时,可以使用CDATA部分插入数据。参考下面的示例:
DECLARE @myDoc xml
SET @myDoc = '<root>
<item ID="1">
<title>Ajax实战</title>
<author>张洪举</author>
</item>
<item ID="2">
<title>ASP.NET实战</title>
<author>卢桂章</author>
</item>
</root>'
SET @myDoc.modify('
insert <desc><![CDATA[ <送货方式>上门<价款>未收]]></desc>
into (/root/item[@ID=2])[1] ') ;
SELECT @myDoc
GO
评论加载中…
![]() |