SQL Server
SQL Server
UpdateChildContent using a Tag Path
See more XML Examples
Demonstrates updating the content of a node using UpdateChildContent with a tag path.Chilkat SQL Server Downloads
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
DECLARE @hr int
-- Important: Do not use nvarchar(max). See the warning about using nvarchar(max).
DECLARE @sTmp0 nvarchar(4000)
DECLARE @xml int
EXEC @hr = sp_OACreate 'Chilkat.Xml', @xml OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
EXEC sp_OASetProperty @xml, 'Tag', 'world'
EXEC sp_OAMethod @xml, 'NewChild2', NULL, 'north_america|united_states|california|sacremento', 'capital'
EXEC sp_OAMethod @xml, 'NewChild2', NULL, 'north_america|united_states|california|los_angeles', 'City of Angels'
EXEC sp_OAMethod @xml, 'NewChild2', NULL, 'north_america|united_states|california|san_francisco', 'Silicon Valley'
EXEC sp_OAMethod @xml, 'NewChild2', NULL, 'north_america|united_states|california|san_diego', 'Birthplace of California'
EXEC sp_OAMethod @xml, 'NewChild2', NULL, 'north_america|united_states|illinois|chicago', 'Windy City'
EXEC sp_OAMethod @xml, 'GetXml', @sTmp0 OUT
PRINT @sTmp0
-- Produces the following XML
--
-- <?xml version="1.0" encoding="utf-8" ?>
-- <world>
-- <north_america>
-- <united_states>
-- <california>
-- <sacremento>capital</sacremento>
-- <los_angeles>City of Angels</los_angeles>
-- <san_francisco>Silicon Valley</san_francisco>
-- <san_diego>Birthplace of California</san_diego>
-- </california>
-- <illinois>
-- <chicago>Windy City</chicago>
-- </illinois>
-- </united_states>
-- </north_america>
-- </world>
--
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'north_america|united_states|california|san_diego', 'Mild Climate'
-- An alternative way of doing it:
DECLARE @success int
EXEC sp_OAMethod @xml, 'FindChild2', @success OUT, 'north_america|united_states|california'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'san_francisco', 'Golden Gate Bridge'
EXEC sp_OAMethod @xml, 'GetRoot2', NULL
EXEC sp_OAMethod @xml, 'GetXml', @sTmp0 OUT
PRINT @sTmp0
-- The XML now contains:
-- <?xml version="1.0" encoding="utf-8" ?>
-- <world>
-- <north_america>
-- <united_states>
-- <california>
-- <sacremento>capital</sacremento>
-- <los_angeles>City of Angels</los_angeles>
-- <san_francisco>Golden Gate Bridge</san_francisco>
-- <san_diego>Mild Climate</san_diego>
-- </california>
-- <illinois>
-- <chicago>Windy City</chicago>
-- </illinois>
-- </united_states>
-- </north_america>
-- </world>
EXEC @hr = sp_OADestroy @xml
END
GO