ASP Examples

ChilkatHOMEAndroid™ASPVisual BasicVB.NETC#iOS (IPhone)Objective-CC++CMFCDelphiFoxProJavaPerl
PHP ExtensionPHP ActiveXPythonPowerShellRubySQL ServerVBScript

ASP Examples

ASP String
ASP Byte Array
Bounced Mail
Bz2
Character Encoding
CSV
Digital Certificates
Digital Signatures
Email
FTP
HTML Conversion
HTTP
IMAP
Encryption
MHT / HTML Email
POP3
RSA
S/MIME
SMTP
Socket
Spider
SSH
SSH Tunnel
SSH Key
SFTP
Tar
ASP Upload
XML
XMP
Zip Compression

More Examples...
Amazon S3
Email Object
DKIM / DomainKey
NTLM
DH Key Exchange
DSA
FileAccess
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
Bzip2
LZW

 

 

 

 

 

 

Parse SOAP XML

Demonstrates how to parse SOAP XML.

Download Chilkat XML ActiveX

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<%

set xml = Server.CreateObject("Chilkat.Xml")

'  The Chilkat XML component is freeware.

'  Load an XML document.
'  This document may be downloaded at:
'  http://www.chilkatsoft.com/testData/soap1.xml
success = xml.LoadXmlFile("soap1.xml")
If (success = 0) Then
    Response.Write "<pre>" & Server.HTMLEncode(xml.LastErrorText) & "</pre>"

End If

'  The sample XML document parsed here is a prime example
'  of how NOT to design your XML schema.  When designing
'  XML, always keep in mind how a program might parse it.
'  Poorly designed XML is a big pain-in-the-ass to parse.
'  We'll show you a much better schema at the end of this
'  example.

'  Here's the XML we'll want to parse:

'  <?xml version="1.0" encoding="utf-8"?><soap:Envelope
'  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
'  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
'  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
'  <soap:Body>
'  <SendRequestResponse
'  xmlns="http://merchantwarehouse.com/webservices/public/MerchantWareService1">
'  <SendRequestResult>
'  <Code>Approved</Code>
'  <ProcessorData>[Response_Code][00][Response_Text][106857][Auth_Reference
'  ][0016][Amount_Balance][205.78][Expiration_Date][012014][Trans_Date_Time
'  ][012209000734][Card_Number][710001900593731][Transaction_ID][1]</ProcessorData>
'  <Fields><Field>
'  <Code>Unknown</Code><Value>1</Value>
'  </Field>
'  <Field>
'  <Code>Message</Code><Value>106857</Value>
'  </Field>
'  <Field>
'  <Code>AuthCodeResp</Code><Value>0016</Value>
'  </Field>
'  <Field>
'  <Code>Balance</Code><Value>205.78</Value>
'  </Field>
'  </Fields>
'  </SendRequestResult>
'  </SendRequestResponse>
'  </soap:Body>
'  </soap:Envelope>

'  The poor design choice in the above XML is to use the same tag over and over.
'  For example "Field", "Code", and "Value".
'  Here's a much much better design, and you'll see later how the parsing is so much simpler:
' 
'  ...
'  <Fields>
'  <Message>106857</Message>
'  <AuthCodeResp>0016</AuthCodeResp>
'  <Balance>205.78</Balance>
'  </Fields>
'  ...

'  Notice it's much more compact.
'  The other poor design choice is globbing all of that information in "ProcessorData".
'  You can't use XML alone to parse the contents of that node -- you'll have to write
'  some custom string parsing code for it...  (ughhh)
' 

'  OK... so let's parse this beast...
'  We already have it loaded in an instance of the XML object.
'  Drill down to the SendRequestResult node:
xml.FirstChild2 
xml.FirstChild2 
xml.FirstChild2 

'  Find the "Fields" node:

' xmlFields is a Chilkat.Xml
Set xmlFields = xml.GetChildWithTag("Fields")

'  Iterate over each field:

numChildren = xmlFields.NumChildren
For i = 0 To numChildren - 1

    ' xmlField is a Chilkat.Xml
    Set xmlField = xmlFields.GetChild(i)

    If (xmlField.HasChildWithTagAndContent("Code","Message") = 1) Then
        Response.Write "<pre>" & Server.HTMLEncode( "Message: " _
             & xmlField.GetChildContent("Value")) & "</pre>"
    End If

    '  Use the same logic for the other fields you want to capture...

Next

'  Here's the XML parsing code if the XML were designed like this:
'  ...
'  <Fields>
'  <Unknown>1</Unknown>
'  <Message>106857</Message>
'  <AuthCodeResp>0016</AuthCodeResp>
'  <Balance>205.78</Balance>
'  </Fields>
'  ...
success = xml.LoadXmlFile("soap2.xml")
If (success = 0) Then
    Response.Write "<pre>" & Server.HTMLEncode(xml.LastErrorText) & "</pre>"

End If

xml.FirstChild2 
xml.FirstChild2 
xml.FirstChild2 

'  Find the "Fields" node:
' xmlFields is a Chilkat.Xml
Set xmlFields = xml.GetChildWithTag("Fields")

'  Get each value:
Response.Write "<pre>" & Server.HTMLEncode( "-----") & "</pre>"
Response.Write "<pre>" & Server.HTMLEncode( "Message: " _
     & xmlFields.GetChildContent("Message")) & "</pre>"
Response.Write "<pre>" & Server.HTMLEncode( "AuthCodeResp:" _
     & xmlFields.GetChildContent("AuthCodeResp")) & "</pre>"
Response.Write "<pre>" & Server.HTMLEncode( "Balance: " _
     & xmlFields.GetChildContent("Balance")) & "</pre>"


%>
</body>
</html>

 

© 2000-2012 Chilkat Software, Inc. All Rights Reserved.