SQL Server
SQL Server
Scrub Xml
See more XML Examples
Demonstrates the Scrub method for some common XML cleaning needs.Note: This example requires Chilkat v9.5.0.77 or greater.
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 @success int
SELECT @success = 0
-- The Scrub method has options for trimming whitespace from the ends of attributes and content,
-- trimming inside whitespace, and for case conversion for tags and attribute names.
-- Trimming inside whitespace is defined as replacing CR, LF, and tab chars with SPACE chars, and
-- removing extra SPACE chars so that at most one SPACE separates non-SPACE chars.
-- For example, load the following XML:
DECLARE @s nvarchar(4000)
SELECT @s = '<xyz><td class=" colHoldingPercent col7" style="border-bottom-color: rgb(221, 221, 221); border-image-outset: 0; "> abc' + CHAR(13) + CHAR(10) + '123 456</td></xyz>'
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_OAMethod @xml, 'LoadXml', @success OUT, @s
EXEC sp_OAMethod @xml, 'GetXml', @sTmp0 OUT
PRINT @sTmp0
-- The XML before scrubbing is:
-- <xyz>
-- <td class=" colHoldingPercent col7" style="border-bottom-color: rgb(221, 221, 221); border-image-outset: 0; ">abc
-- 123 456</td>
-- </xyz>
EXEC sp_OAMethod @xml, 'Scrub', NULL, 'AttrTrimEnds,AttrTrimInside,ContentTrimEnds,ContentTrimInside'
EXEC sp_OAMethod @xml, 'GetXml', @sTmp0 OUT
PRINT @sTmp0
-- The XML after scrubbing is:
-- <?xml version="1.0" encoding="utf-8"?>
-- <xyz>
-- <td class="colHoldingPercent col7" style="border-bottom-color: rgb(221, 221, 221); border-image-outset: 0;">abc 123 456</td>
-- </xyz>
EXEC @hr = sp_OADestroy @xml
END
GO