XMLNode - Scoped, Global

concept brazil Updated Sep 10, 2026 5 min read c_XMLNodeScopedAPI.md
Raw file servicenow.com

The XMLNode API provides methods to query values from XML nodes. XMLNodes are extracted from XMLDocument2 objects, which contain XML strings.

There are no constructors for creating a stand alone instance of an XMLNode object. Instead, use the createElement() method of XMLDocument2, which adds a node to an existing document.

Parent Topic:Server API reference

Scoped XMLNode - getAttribute(String attribute)

Gets the value of the attribute.

Name Type Description
attribute String Name of the attribute.
Type Description
String The attribute's value.
JavaScript
var xmlString = "<test>" +                "  <one>" +                "    <two att=\"xxx\">abcd1234</two>" +                "    <three boo=\"yah\" att=\"yyy\">1234abcd</three>" +                "    <two>another</two>" +                "  </one>" +                "  <number>1234</number>" +                "</test>";var xmlDoc = new XMLDocument2();xmlDoc.parseXML(xmlString);var node = xmlDoc.getNode('//two');gs.info(node.getAttribute('att'));

Output:

Text
xxx

Scoped XMLNode - getAttributes()

Returns an object containing the node's attributes as properties with values.

Name Type Description
None
Type Description
Object Contains name-value pairs where the name is the attribute and the value is the attribute's value.

Scoped XMLNode - getChildNodeIterator()

Gets a XMLNodeIterator object that can be used to walk through the list of child nodes.

Name Type Description
None
Type Description
XMLNodeIterator The node iterator object.
JavaScript
var xmlString = "<test>" +                "  <one>" +                "    <two att=\"xxx\">abcd1234</two>" +                "    <three boo=\"yah\" att=\"yyy\">1234abcd</three>" +                "    <two>another</two>" +                "  </one>" +                "  <number>1234</number>" +                "</test>";var xmlDoc = new XMLDocument2();xmlDoc.parseXML(xmlString);var node = xmlDoc.getNode('//one');var iter= node.getChildNodeIterator();gs.info(iter.hasNext());

Scoped XMLNode - getFirstChild()

Gets the node's first child node.

Name Type Description
None
Type Description
XMLNode The node's first child node.
JavaScript
var xmlString = "<test>" +                "<one>" +                "<two att=\"xxx\">abcd1234</two>" +                "<three boo=\"yah\" att=\"yyy\">1234abcd</three>" +                "<two>another</two>" +                "</one>" +                "<number>1234</number>" +                "</test>";var xmlDoc = new XMLDocument2();xmlDoc.parseXML(xmlString);var node = xmlDoc.getNode('//one');gs.info(node.getFirstChild());

Output:

XML
<two att="xxx">abcd1234</two>

Scoped XMLNode - getLastChild()

Gets the node's last child node.

Name Type Description
None
Type Description
XMLNode The node's last child.
JavaScript
var xmlString = "<test>" +                "<one>" +                "<two att=\"xxx\">abcd1234</two>" +                "<three boo=\"yah\" att=\"yyy\">1234abcd</three>" +                "<two>another</two>" +                "</one>" +                "<number>1234</number>" +                "</test>";var xmlDoc = new XMLDocument2();xmlDoc.parseXML(xmlString);var node = xmlDoc.getNode('//one'); gs.info(node.getLastChild());

Output:

XML
<two>another</two>

Scoped XMLNode - getNodeName()

Gets the node's name. A node's name is determined by the node type. A document-element node's name is #document. A text node's name is #text. An element node's name is the element's name.

Name Type Description
None
Type Description
String The node's name.
JavaScript
var xmlString = "<test>" +                "  <one>" +                "    <two att=\"xxx\">abcd1234</two>" +                "    <three boo=\"yah\" att=\"yyy\">1234abcd</three>" +                "    <two>another</two>" +                "  </one>" +                "  <number>1234</number>" +                "</test>";var xmlDoc = new XMLDocument2();xmlDoc.parseXML(xmlString);var node = xmlDoc.getNode('//two');gs.info(node.getNodeName());

Output:

Text
two

Scoped XMLNode - getNodeValue()

Gets the node's value. A node's value is determined by the node type. Element and document-element nodes return null.

Name Type Description
None
Type Description
String The node's value.
JavaScript
var xmlString = "<test>" +                "  <one>" +                "    <two att=\"xxx\">abcd1234</two>" +                "    <three boo=\"yah\" att=\"yyy\">1234abcd</three>" +                "    <two>another</two>" +                "  </one>" +                "  <number>1234</number>" +                "</test>";var xmlDoc = new XMLDocument2();xmlDoc.parseXML(xmlString);var node = xmlDoc.getNode('//two');gs.info(node.getNodeValue());

Output:

Text
null

Scoped XMLNode - getTextContent()

Gets the text content of the current node. The text content of a node consists of all the node's child text nodes

Name Type Description
None
Type Description
String The text content of the current node.
JavaScript
var xmlString = "<test>" +                "  <one>" +                "    <two att=\"xxx\">abcd1234</two>" +                "    <three boo=\"yah\" att=\"yyy\">1234abcd</three>" +                "    <two>another</two>" +                "  </one>" +                "  <number>1234</number>" +                "</test>";var xmldoc = new XMLDocument2();xmldoc.parseXML(xmlString);var node = xmldoc.getNode('//one/two');gs.info(node.getTextContent());

Output:

Text
abcd1234

Scoped XMLNode - hasAttribute(String attribute)

Determines if the node has the specified attribute.

Name Type Description
attribute String The name of the attribute to check.
Type Description
Boolean True if the node has the attribute.
JavaScript
var xmlString = "<test>" +                "  <one>" +                "    <two att=\"xxx\">abcd1234</two>" +                "    <three boo=\"yah\" att=\"yyy\">1234abcd</three>" +                "    <two>another</two>" +                "  </one>" +                "  <number>1234</number>" +                "</test>";var xmlDoc = new XMLDocument2();xmlDoc.parseXML(xmlString);var node = xmlDoc.getNode('//two');gs.info(node.hasAttribute('att'));

Output:

Text
true

Scoped XMLNode - isCDATANode()

Indicates whether the CDATA node is preserved as a separate node.

Use the Scoped XMLDocument2 - setEnableCDATAReporting(Boolean enable) method to ensure that CDATA nodes are preserved and not handled as text.

Name Type Description
None

Type

Description

Boolean

Flag that indicates whether a queried node is CDATA or plain text.Valid values:

  • true: The node queried is CDATA.
  • false: The node queried is plain text.
The following example shows how to parse an XML string with CDATA reporting enabled using [Scoped XMLDocument2 - setEnableCDATAReporting\(Boolean enable\)](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/api-reference/server-api-reference/c_XMLDocument2ScopedAPI.md). The code uses isCDATANode\(\) to show that the first node queried in the XML string is a CDATA node.
JavaScript
var xmlString = "<test>" +  "  <one>" +  "    <two att=\"xxx\">abcd1234</two>" +  "    <three boo=\"yah\" att=\"yyy\">1234abcd</three>"+  "    <four><![CDATA[another]]>element</four>" +  "  </one>" +  "  <number>1234</number>" +  "</test>";var xmlDoc = new XMLDocument2();xmlDoc.setEnableCDATAReporting(true); // Enables CDATA reportingxmlDoc.parseXML(xmlString);var content = xmlDoc.getFirstNode('/test/one/four');gs.info(content.getFirstChild().isCDATANode());

Output:

Text
true

Scoped XMLNode - toString()

Returns the string value of the current node.

Name Type Description
None
Type Description
String The string value of the current node.
JavaScript
var xmlString = "<test>" +                "  <one>" +                "    <two att=\"xxx\">abcd1234</two>" +                "    <three boo=\"yah\" att=\"yyy\">1234abcd</three>" +                "    <two>another</two>" +                "  </one>" +                "  <number>1234</number>" +                "</test>";var xmlDoc = new XMLDocument2();xmlDoc.parseXML(xmlString);var node = xmlDoc.getNode('//one');gs.info(node.toString());

Output: Line breaks were added to the output.

XML
<one>    <two att="xxx">abcd1234</two>    <three att="yyy" boo="yah">1234abcd</three>    <two>another</two>  </one>
Search documentation
Search document titles and file paths on the brazil branch