Learn about VBScript TransformNode method, including XML transformations, XSLT processing, and more. Understand how to use it effectively with practical examples.
last modified April 9, 2025
The TransformNode method in VBScript is used to transform XML documents using XSLT stylesheets. It applies an XSL transformation to an XML node and returns the result as a string. This method is part of the Microsoft XML DOM implementation. It’s essential for XML processing in VBScript.
TransformNode enables powerful XML data manipulation and presentation. It’s commonly used for converting XML to HTML or other formats. This tutorial covers TransformNode with practical examples to demonstrate its usage in various scenarios.
The TransformNode method takes an XSLT stylesheet as input and returns the transformed output. It works on XML DOM nodes, transforming them according to XSL rules. The method is available through the MSXML DOM objects.
Key features include XML-to-HTML conversion and data restructuring. It requires properly formatted XML and XSLT documents. TransformNode is synchronous and returns the result immediately. Understanding this method helps create dynamic XML processing scripts.
This example demonstrates the simplest use of TransformNode to convert XML to HTML. It shows loading both XML and XSLT documents. The transformation produces HTML output from the XML data.
basic_transform.vbs
Set xmlDoc = CreateObject(“MSXML2.DOMDocument”) Set xslDoc = CreateObject(“MSXML2.DOMDocument”)
xmlDoc.async = False xslDoc.async = False
xmlDoc.load(“data.xml”) xslDoc.load(“transform.xsl”)
result = xmlDoc.transformNode(xslDoc) WScript.Echo result
Set xmlDoc = Nothing Set xslDoc = Nothing
The script creates XML and XSLT DOM documents. It loads XML data from “data.xml” and XSLT from “transform.xsl”. TransformNode applies the transformation. The result contains HTML generated from the XML source.
TransformNode can transform specific nodes rather than entire documents. This example shows selecting a node before transformation. It demonstrates targeted transformations on document subsets.
node_selection.vbs
Set xmlDoc = CreateObject(“MSXML2.DOMDocument”) Set xslDoc = CreateObject(“MSXML2.DOMDocument”)
xmlDoc.async = False xslDoc.async = False
xmlDoc.load(“catalog.xml”) xslDoc.load(“product.xsl”)
Set productNode = xmlDoc.selectSingleNode("//product[@id=‘101’]") result = productNode.transformNode(xslDoc)
WScript.Echo result Set xmlDoc = Nothing Set xslDoc = Nothing
The script loads an XML catalog and XSLT stylesheet. It selects a specific product node using XPath. TransformNode transforms only this node. This approach is useful for processing document fragments.
This example shows passing parameters to XSLT transformations. Parameters allow dynamic control over the transformation process. The script demonstrates setting XSLT parameters before calling TransformNode.
parameters.vbs
Set xmlDoc = CreateObject(“MSXML2.DOMDocument”) Set xslDoc = CreateObject(“MSXML2.DOMDocument”) Set template = CreateObject(“MSXML2.XSLTemplate”)
xmlDoc.async = False xslDoc.async = False
xmlDoc.load(“data.xml”) xslDoc.load(“param_transform.xsl”)
Set processor = template.createProcessor() processor.input = xmlDoc processor.addParameter “sortOrder”, “descending” processor.addParameter “maxItems”, 5
processor.transform result = processor.output
WScript.Echo result Set xmlDoc = Nothing Set xslDoc = Nothing Set template = Nothing
The script uses XSLTemplate for parameterized transformations. It sets two parameters: sortOrder and maxItems. The processor applies these to the transformation. This technique enables flexible, runtime-configurable transformations.
This example demonstrates proper error handling during XML transformations. It shows checking document loading status and catching transformation errors. Robust error handling is essential for production scripts.
error_handling.vbs
On Error Resume Next
Set xmlDoc = CreateObject(“MSXML2.DOMDocument”) Set xslDoc = CreateObject(“MSXML2.DOMDocument”)
xmlDoc.async = False xslDoc.async = False
If Not xmlDoc.load(“data.xml”) Then WScript.Echo “XML Error: " & xmlDoc.parseError.reason WScript.Quit 1 End If
If Not xslDoc.load(“transform.xsl”) Then WScript.Echo “XSL Error: " & xslDoc.parseError.reason WScript.Quit 1 End If
result = xmlDoc.transformNode(xslDoc) If Err.Number <> 0 Then WScript.Echo “Transformation Error: " & Err.Description Else WScript.Echo result End If
Set xmlDoc = Nothing Set xslDoc = Nothing
The script checks for loading errors using parseError. It handles transformation errors with VBScript’s error handling. This approach ensures graceful failure when issues occur. Proper error handling makes scripts more reliable.
TransformNode can produce plain text output, not just HTML. This example shows converting XML data to a CSV format. The XSLT stylesheet generates comma-separated values from XML input.
xml_to_csv.vbs
Set xmlDoc = CreateObject(“MSXML2.DOMDocument”) Set xslDoc = CreateObject(“MSXML2.DOMDocument”)
xmlDoc.async = False xslDoc.async = False
xmlDoc.load(“employees.xml”) xslDoc.load(“csv_transform.xsl”)
result = xmlDoc.transformNode(xslDoc) WScript.Echo result
Set xmlDoc = Nothing Set xslDoc = Nothing
The script loads employee data in XML format. The XSLT stylesheet converts this to CSV output. TransformNode applies the text-based transformation. This technique is useful for data export scenarios.
MSXML TransformNode Documentation
In this article, we have explored the TransformNode method in VBScript, covering its usage and practical applications. From basic XML to HTML conversions to parameterized transformations, these examples demonstrate the method’s versatility. With this knowledge, you can implement robust XML processing in your VBScript applications.
My name is Jan Bodnar and I am a passionate programmer with many years of programming experience. I have been writing programming articles since 2007. So far, I have written over 1400 articles and 8 e-books. I have over eight years of experience in teaching programming.
List all VBScript tutorials.