VBScript XML Property
last modified April 9, 2025
The xml property in VBScript is part of the Microsoft XML DOM
(Document Object Model). It returns the XML representation of a node and its
descendants as a string. This property is available on IXMLDOMNode objects and
their descendants. It's essential for XML document manipulation in VBScript.
xml provides serialized XML content including tags, attributes,
and text. It's commonly used for debugging, logging, and XML transformation.
This tutorial covers xml property with practical examples to
demonstrate its usage in various scenarios.
XML Property Overview
The xml property returns a string containing the XML markup for
a node and all its children. It works with all node types including elements,
attributes, and text nodes. The output includes proper XML formatting with
indentation where applicable.
Key features include complete XML serialization and proper encoding of special characters. The property is read-only and cannot be used to modify XML content. Understanding this property helps in XML document inspection and manipulation.
Basic XML Document Serialization
This example demonstrates the simplest use of xml property to
serialize an entire XML document. It shows how to load an XML string and output
its serialized form. The example uses MSXML2.DOMDocument to parse the XML.
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
xmlDoc.async = False
xmlDoc.loadXML "<books><book><title>VBScript Guide</title></book></books>"
WScript.Echo xmlDoc.xml
Set xmlDoc = Nothing
The script creates an XML DOM document and loads a simple XML string. The
xml property returns the complete XML markup as a string. The
output matches the input XML but may include additional formatting. This is
useful for verifying document structure.
Serializing Specific Nodes
This example shows how to use xml property on specific nodes
rather than the entire document. It demonstrates selective serialization of
XML fragments. The example navigates to a child node before serializing.
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
xmlDoc.async = False
xmlDoc.loadXML "<catalog><book id='101'><title>Advanced VBScript</title></book></catalog>"
Set bookNode = xmlDoc.selectSingleNode("//book")
WScript.Echo bookNode.xml
Set bookNode = Nothing
Set xmlDoc = Nothing
The script loads an XML document and selects a specific book node. The
xml property serializes just this node and its children. The output
includes the book element with its attributes and child elements. This is useful
for extracting document fragments.
Comparing Document and Element XML
This example demonstrates the difference between using xml on the
document versus individual elements. It shows how the output varies based on
the node type. The example highlights XML declaration inclusion.
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
xmlDoc.async = False
xmlDoc.loadXML "<?xml version='1.0'?><root><item>Test</item></root>"
WScript.Echo "Document XML:"
WScript.Echo xmlDoc.xml
WScript.Echo vbCrLf & "Element XML:"
Set root = xmlDoc.documentElement
WScript.Echo root.xml
Set root = Nothing
Set xmlDoc = Nothing
The script shows that document-level xml includes the XML
declaration. Element-level serialization omits this declaration. Both outputs
include proper formatting and complete node hierarchies. This distinction is
important when generating XML fragments versus complete documents.
Handling Special Characters
This example demonstrates how xml property automatically handles
special characters in XML content. It shows proper escaping of reserved
characters like ampersands and angle brackets. The example verifies correct
serialization.
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
xmlDoc.async = False
xmlDoc.loadXML "<data><text>AT&T > Sprint & Verizon</text></data>"
WScript.Echo xmlDoc.xml
Set xmlDoc = Nothing
The script contains special characters that would be invalid in raw XML. The
xml property properly escapes these characters in the output. The
resulting XML is well-formed and can be parsed again. This automatic escaping
simplifies XML generation.
Creating XML from Scratch
This example shows how to build an XML document programmatically and then use
xml property to serialize it. It demonstrates dynamic XML
generation in VBScript. The example creates elements and attributes.
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
Set root = xmlDoc.createElement("inventory")
xmlDoc.appendChild root
Set item = xmlDoc.createElement("item")
item.setAttribute "id", "X205"
item.textContent = "Keyboard"
root.appendChild item
WScript.Echo xmlDoc.xml
Set item = Nothing
Set root = Nothing
Set xmlDoc = Nothing
The script creates a new XML document from scratch without loading existing XML.
Elements and attributes are added programmatically. The xml
property serializes the complete generated structure. This approach is useful for
dynamic XML generation in applications.
Source
MSXML DOMDocument Documentation
In this article, we have explored the xml property in VBScript,
covering its usage and practical applications. From complete document
serialization to node-specific fragments, these examples demonstrate XML
processing capabilities. With this knowledge, you can effectively work with XML
in your VBScript applications.
Author
List all VBScript tutorials.