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
(Tcl) Handling Namespaces in XML TagsDemonstrates new features added in Chilkat v9.5.0.77 for helping with namespace prefixed tags.
load ./chilkat.dll # First create some XML using namespace prefixed tags. # Create this XML. # Use this online tool to generate the code from sample XML: # Generate Code to Create XML # <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" # xmlns:scm="http://www.springcm.com/atlas/webservices/v201308/scm/"> # <soapenv:Header/> # <soapenv:Body> # <scm:AccountGetCurrent> # <scm:token>123</scm:token> # </scm:AccountGetCurrent> # </soapenv:Body> # </soapenv:Envelope> set xml [new_CkXml] CkXml_put_Tag $xml "soapenv:Envelope" CkXml_AddAttribute $xml "xmlns:soapenv" "http://schemas.xmlsoap.org/soap/envelope/" CkXml_AddAttribute $xml "xmlns:scm" "http://www.springcm.com/atlas/webservices/v201308/scm/" CkXml_UpdateChildContent $xml "soapenv:Header" "" CkXml_UpdateChildContent $xml "soapenv:Body|scm:AccountGetCurrent|scm:token" "123" # Go to the "Body" tag, regardless of namespace prefix. # xmlBody is a CkXml set xmlBody [CkXml_FindChild $xml "*:Body"] if {[CkXml_get_LastMethodSuccess $xml] != 1} then { puts "Body child not found." delete_CkXml $xml exit } # Get the full tag w/ namespace prefix: # Output is "soapenv:Body" puts [CkXml_tag $xmlBody] # Get the namespace prefix: # Output is "soapenv" puts [CkXml_tagNsPrefix $xmlBody] # Get the unprefixed tag: # Output is "Body" puts [CkXml_tagUnprefixed $xmlBody] # Check to see if the unprefixed tag equals "Body" set isBodyTag [CkXml_TagUnpEquals $xmlBody "Body"] puts "isBodyTag = $isBodyTag" # Check to see if the namespace prefix equals "soapenv"; set isSoapenv [CkXml_TagNsEquals $xmlBody "soapenv"] puts "isSoapenv = $isSoapenv" # Change just the namespace prefix of the tag CkXml_put_TagNsPrefix $xmlBody "se" # The tag has changed from "soapenv:Body" to "se:Body" puts [CkXml_tag $xmlBody] # Change the unprefixed part of the tag. CkXml_put_TagUnprefixed $xmlBody "Bodie" # The tag has changed from "se:Body" to "se:Bodie" puts [CkXml_tag $xmlBody] delete_CkXml $xmlBody delete_CkXml $xml |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.