Note This topic is intended to provide some guidance for VBScript developers. For more information about JScript or VBScript, see the documentation available from the MSDN Scripting Developer's Center .
Most of the sample code in the MSXML SDK is written in JScript, Visual Basic, or C/C++. However, much of the provided JScript code can be modified to run successfully as VBScript.
The following are some general tips for converting JScript examples to functional VBScript.
When working with MSXML in either JScript or VBScript, you need to create an automation object (for example, a DOMDocument
object), then assign its contents to a variable.
To perform this step in JScript, you create a new instance of the ActiveXObject
object and assign its contents to a variable, like this:
var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.5.0");
To perform this same step in VBScript, you need to use the CreateObject
function, and assign the value it returns to the named variable, like this:
set xmlDoc = CreateObject("Msxml2.DOMDocument.5.0")
Note that because the value returned is of the object data type, in VBScript you need to use the set
statement to assign it to the variable (xmlDoc
).
In JScript, a line of code can be spread over multiple lines of text in the source file. Therefore, semi-colons are used as line termination characters to indicate the end of each line of code.
These semi-colons are not necessary in VBScript. By default, VBScript treats each line of text as a single line of code, unless you use the Visual Basic line continuation character (an underscore) to indicate that the current line wraps to the next line of text.
In JScript, you declare a variable using the var
statement, like this:
var node;
If you are declaring variables in VBScript, use the Dim
statement, like this:
Dim node
In JScript, you need to enclose parameters in parentheses when you set properties or call a method on an object. For example:
xmlDoc.load("books.xml"); xmlDoc.setProperty("SelectionLanguage", "XPath"); currNode = xmlDoc.selectSingleNode("//book/author");
In VBScript, you need to remove the parentheses from the first two lines, like this:
xmlDoc.load "books.xml" xmlDoc.setProperty "SelectionLanguage", "XPath"
However, you do use parentheses in VBScript when the method is used as part of the right side of an equal assignment statement. So the third line is the same in both JScript and VBScript:
currNode = xmlDoc.selectSingleNode("//book/author")
When you write JScript to display XML or other text string results in message boxes within Internet Explorer, you use the alert()
method of the window
object. To do this in VBScript, use the MsgBox
function.
Example
The following are two different HTML files that display the contents of a simple XML DOM document within an HTML page. The first file uses JScript; the second uses VBScript. The differences are highlighted in bold text.
<HTML> <HEAD> <TITLE>Displaying a Simple DOM Document in a Browser Popup</TITLE> <SCRIPT LANGUAGE="JScript
"> function displayXml() { var xmldoc = new ActiveXObject("MSXML2.DOMDocument.5.0"); xmldoc.loadXML("<root><child></child></root>");alert(xmldoc.xml);
} </SCRIPT> </HEAD> <BODY> <BUTTON onClick="displayXml();">Display XML</BUTTON> </BODY> </HTML>
<HTML> <HEAD> <TITLE>Displaying a Simple DOM Document in a Browser Popup</TITLE> <SCRIPT LANGUAGE="VBScript
"> Sub DisplayXml set xmldoc = CreateObject("MSXML2.DOMDocument.5.0") xmldoc.loadXML "<root><child></child></root>"MsgBox xmldoc.xml
End Sub </SCRIPT> </HEAD> <BODY> <BUTTON onClick="DisplayXml">Display XML</BUTTON> </BODY> </HTML>
Try It!
Output
The following contents of the XML DOM document will appear as a browser popup:
<root><child></child></root>
The results of Step 6 are the same, regardless of whether you are executing the JScript or VBScript version of the scripted HTML page.