talk with each other. XML is just one of the many ways that this can be done.
The following example creates an XML document and sends it over HTTP to some
URL. Then it processes the returned XML that the URL would return back.
The code uses Microsoft's XML functionality which limits the operating systems
that this can run on (Win32 platform). The code can also be written in java
using IBM xml4j library.
For simplicity sake I designed the code assuming that the returned XML page
only has one node. This can be changed to loop through the nodes.
Hope this helps.
'Code specifics
Code is run from a button click of a form
The form has 4 fields on it (txtSend,txtSent,XMLRet, and IsPalidrome)
The url is an ASP file that determines if the text (XML doc) sent to it is a
palidrome
If you need the ASP code just let me know and I can send it to you.
Dim wk As New NotesUIWorkSpace
Dim uidoc As NotesUIDocument
Dim txtURN As String
Set uidoc = wk.CurrentDocument
Dim objSendXMLDOM As Variant
Dim objReceiveXMLDOM As Variant
Dim objXMLHTTP As Variant
Dim objXMLNode As Variant
Dim sentXML As String
Set objSendXMLDOM = CreateObject("Microsoft.FreeThreadedXMLDOM")
Set objXMLHTTP = CreateObject("Microsoft.XMLHTTP")
Set objReceiveXMLDOM = CreateObject("Microsoft.FreeThreadedXMLDOM")
Requires Free Membership to View
Register today to access targeted resources from our editorial writers and independent industry experts focused on Lotus Domino, Notes, Workplace and other related technologies.
txtURN = "http://testserver/palindrome.asp"
' Load the document using a string - rather than build it with the DOM
(sample shortcut)
sentXML = "<?xml version=""1.0""?><palindrome>" & uidoc.document.txtSend(0) &
"</palindrome>"
uidoc.document.txtSent = sentXML
With objSendXMLDOM
.async = False
.loadXML sentXML
End With
' Send the XML DOM using a POST - note async is OFF
With objXMLHTTP
.open "POST", txtURN, False
.send objSendXMLDOM
End With
' Receive the Document and Parse the Response
With objReceiveXMLDOM
.async = False
.loadXML objXMLHTTP.responseText
Set objXMLNode = .selectSingleNode("response")
End With
uidoc.document.XMLRet = objXMLHTTP.responseText
If objXMLNode.Text = "True" Then
uidoc.Document.IsPalidrome = "0"
Else
uidoc.Document.IsPalidrome = "1"
End If
uidoc.Refresh
This was first published in November 2000