Sample code for 30+ languages & platforms
SQL Server

Create XML using Tag Paths

See more XML Examples

Demonstrates creating an XML document using tag paths.

This example requires Chilkat v9.5.0.64 or greater.

Chilkat SQL Server Downloads

SQL Server
-- 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'

    -- This example uses features introduced in v9.5.0.64
    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 @hr = sp_OADestroy @xml


END
GO