Skip to content
Release: Australia · Updated: 2026-03-12 · Official documentation · View source

XMLNodeIterator- Scoped

The XMLNodeIterator API provides methods to iterate through a node of a XML document.

There are no constructors for creating a stand alone instance of a XMLNodeIterator object. To create a XMLNodeIterator object use the getChildNodeIterator() method of the XMLNode object.

Parent Topic:Server API reference

XMLNodeIterator - hasNext()

Returns true if the iteration has more elements.

NameTypeDescription
None  
TypeDescription
BooleanTrue if the iteration has more elements.
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());

XMLNodeIterator - next()

Gets the next element in the iteration. The returned element may be a #text node for the spaces/tabs if XML is "pretty formatted".

NameTypeDescription
None  
TypeDescription
XMLNodeThe next element in the iteration.
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();
while(iter.hasNext()) {
   var n = iter.next();
   gs.info('Node name: ' +  n.getNodeName());
   gs.info('Node value: ' +  n.getNodeValue());
}

Output:

Node name: #text
Node value:     
Node name: two
Node value: null
Node name: #text
Node value:     
Node name: three
Node value: null
Node name: #text
Node value:     
Node name: two
Node value: null
Node name: #text
Node value: