Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(SQL Server) Remove an XML SubtreeDemonstrates how to remove an XML subtree from an XML document.
-- 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 -- Use "Chilkat_9_5_0.Xml" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.Xml', @xml OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END DECLARE @success int EXEC sp_OAMethod @xml, 'LoadXmlFile', @success OUT, 'qa_data/xml/osszes.xml' -- The XML file we're loading contains this: -- <?xml version="1.0" encoding="iso-8859-2" ?> -- <EXAMPLE> -- <OSSZES> -- <ROW TYPE="INS">477953 -- <NUMBER>05107003972</NUMBER> -- </ROW> -- <ROW TYPE="INS">477954 -- <NUMBER>05107001342</NUMBER> -- </ROW> -- <ROW TYPE="INS">477955 -- <NUMBER>05107001342</NUMBER> -- </ROW> -- <ROW TYPE="INS">477956 -- <NUMBER>05107000017</NUMBER> -- </ROW>** -- <ROW TYPE="INS">477957 -- <NUMBER>05107002182</NUMBER> -- </ROW> -- </OSSZES> -- </EXAMPLE> -- -- We wish to remove this subtree: -- <ROW TYPE="INS">477956 -- <NUMBER>05107000017</NUMBER> -- </ROW> -- Get another reference to the XML document. DECLARE @xml2 int EXEC sp_OAMethod @xml, 'GetSelf', @xml2 OUT -- Navigate to the node that is the root of the subtree to be deleted. -- In this case, we wish to find the node having tag "ROW" with content "477956" DECLARE @notUsed nvarchar(4000) EXEC sp_OAMethod @xml2, 'ChilkatPath', @notUsed OUT, 'OSSZES|/C/ROW,*477956*|$' -- Examine the xml2, it should be just the subtree. EXEC sp_OAMethod @xml2, 'GetXml', @sTmp0 OUT PRINT @sTmp0 -- Now detach xml2 from the it's XML document. -- xml2 will now be it's own XML document. EXEC sp_OAMethod @xml2, 'RemoveFromTree', NULL -- Examine our original XML document. The subtree is removed: EXEC sp_OAMethod @xml, 'GetXml', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @xml2 EXEC @hr = sp_OADestroy @xml END GO |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.