Learn about VBScript nodeName property, including XML/HTML DOM navigation, node types, and more. Understand how to use it effectively with practical examples.
last modified April 9, 2025
The nodeName property in VBScript returns the name of a node in the DOM (Document Object Model). It’s a read-only property available on all node types. The returned value depends on the node type, providing identification for elements, attributes, and other node types.
For element nodes, nodeName returns the tag name in uppercase. For attribute nodes, it returns the attribute name. Text nodes return “#text”. This property is essential for navigating and manipulating XML/HTML documents in VBScript.
The nodeName property is part of the DOM Core specification. It provides a standardized way to identify node types in a document tree. The property works with both XML and HTML documents when processed through the DOM.
Different node types return different values from nodeName. Element nodes return their tag name, attribute nodes return their attribute name. Document nodes return “#document”. Understanding these values helps in DOM navigation and manipulation.
This example demonstrates how to retrieve the name of an element node. We’ll load a simple XML document and examine the nodeName of its root element. The example shows basic XML parsing in VBScript.
element_nodename.vbs
Set xmlDoc = CreateObject(“Microsoft.XMLDOM”) xmlDoc.async = False xmlDoc.loadXML “<book><title>VBScript Guide;<title></book>”
Set root = xmlDoc.documentElement WScript.Echo “Root node name: " & root.nodeName ’ Output: BOOK
Set xmlDoc = Nothing
The script creates an XML DOM object and loads a simple XML string. It accesses the documentElement (root node) and displays its nodeName. Note that element names are returned in uppercase by default in VBScript’s XML DOM.
This example shows how nodeName behaves with different node types. We’ll examine an element, its attribute, and a text node. Each node type returns a different value from the nodeName property.
node_types.vbs
Set xmlDoc = CreateObject(“Microsoft.XMLDOM”) xmlDoc.async = False xmlDoc.loadXML “<product id=‘101’><name>Widget</name></product>”
Set product = xmlDoc.documentElement Set attr = product.getAttributeNode(“id”) Set text = product.firstChild.firstChild
WScript.Echo “Element: " & product.nodeName ’ Output: PRODUCT WScript.Echo “Attribute: " & attr.nodeName ’ Output: id WScript.Echo “Text node: " & text.nodeName ’ Output: #text
Set xmlDoc = Nothing
The script loads XML with an element, attribute, and text content. It displays nodeName for each node type. Notice the attribute keeps its original case while the element name is uppercase. Text nodes return the special value “#text”.
This example demonstrates using nodeName to navigate an HTML document. We’ll examine the node names at different levels of a simple HTML structure. The example shows how to traverse the DOM tree.
html_navigation.vbs
Set htmlDoc = CreateObject(“htmlfile”) htmlDoc.write “<html><body><h1>Welcome</h1><p>Content</p></body></html>”
Set html = htmlDoc.documentElement Set body = html.firstChild Set heading = body.firstChild
WScript.Echo “HTML: " & html.nodeName ’ Output: HTML WScript.Echo “BODY: " & body.nodeName ’ Output: BODY WScript.Echo “H1: " & heading.nodeName ’ Output: H1
Set htmlDoc = Nothing
The script creates an HTML document object and writes simple HTML content. It then navigates from the root HTML element down to the H1 element. Each node’s name is displayed, showing the hierarchical structure of the document.
This example shows a practical use of nodeName to process XML data. We’ll iterate through child nodes and perform actions based on their names. The script demonstrates conditional processing using node names.
xml_processing.vbs
Set xmlDoc = CreateObject(“Microsoft.XMLDOM”) xmlDoc.async = False xmlDoc.loadXML “<data><item>A</item><note>Important</note><item>B</item></data>”
Set root = xmlDoc.documentElement For Each node In root.childNodes If node.nodeName = “ITEM” Then WScript.Echo “Found item: " & node.text ElseIf node.nodeName = “NOTE” Then WScript.Echo “Found note: " & node.text End If Next
Set xmlDoc = Nothing
The script loads XML containing different element types. It loops through child nodes and checks their nodeName values. Based on the element name, it performs different actions. This pattern is common in XML processing scripts.
This example compares the nodeName property with the tagName property. While similar for elements, they behave differently for other node types. The script demonstrates these differences.
nodename_tagname.vbs
Set xmlDoc = CreateObject(“Microsoft.XMLDOM”) xmlDoc.async = False xmlDoc.loadXML “<root><element attr=‘value’>Text</element></root>”
Set elem = xmlDoc.documentElement.firstChild Set attr = elem.getAttributeNode(“attr”) Set text = elem.firstChild
WScript.Echo “Element nodeName: " & elem.nodeName ’ Output: ELEMENT WScript.Echo “Element tagName: " & elem.tagName ’ Output: ELEMENT WScript.Echo “Attribute nodeName: " & attr.nodeName ’ Output: attr WScript.Echo “Text nodeName: " & text.nodeName ’ Output: #text
Set xmlDoc = Nothing
The script shows that for elements, nodeName and tagName return the same value. However, tagName is undefined for non-element nodes. nodeName works consistently across all node types, making it more versatile for DOM navigation.
In this article, we have explored the nodeName property in VBScript, covering its behavior with different node types and practical applications. From simple XML parsing to complex document navigation, these examples demonstrate how nodeName helps identify and process nodes. With this knowledge, you can write more robust DOM processing scripts.
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.