VB.NET Examples

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

VB.NET Examples

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

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

Byte Array
VB.NET FTPS
System.IO

 

 

 

 

 

 

Parse SOAP XML

Demonstrates how to parse SOAP XML.

Download Chilkat .NET for 4.0 Framework

Download Chilkat .NET for 64-bit 4.0 Framework (x64)

Download Chilkat .NET for 2.0 / 3.5 Framework

Download Chilkat .NET for 64-bit 2.0 / 3.5 Framework (x64)

Download Chilkat .NET for 1.0 / 1.1 Framework

Dim success As Boolean
Dim xml As New 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 = false) Then
    MsgBox(xml.LastErrorText)
    Exit Sub
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:
Dim xmlFields As Chilkat.Xml
xmlFields = xml.GetChildWithTag("Fields")

'  Iterate over each field:
Dim i As Long
Dim xmlField As Chilkat.Xml
Dim numChildren As Long
numChildren = xmlFields.NumChildren
For i = 0 To numChildren - 1

    xmlField = xmlFields.GetChild(i)

    If (xmlField.HasChildWithTagAndContent("Code","Message") = true) Then
        TextBox1.Text = TextBox1.Text & "Message: " _
             & xmlField.GetChildContent("Value") & vbCrLf
    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 = false) Then
    MsgBox(xml.LastErrorText)
    Exit Sub
End If


xml.FirstChild2()
xml.FirstChild2()
xml.FirstChild2()

'  Find the "Fields" node:
xmlFields = xml.GetChildWithTag("Fields")

'  Get each value:
TextBox1.Text = TextBox1.Text & "-----" & vbCrLf
TextBox1.Text = TextBox1.Text & "Message: " & xmlFields.GetChildContent("Message") & vbCrLf
TextBox1.Text = TextBox1.Text & "AuthCodeResp:" _
     & xmlFields.GetChildContent("AuthCodeResp") & vbCrLf
TextBox1.Text = TextBox1.Text & "Balance: " & xmlFields.GetChildContent("Balance") & vbCrLf


 

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

Mail Component · XML Parser