Skip to content

XML Parser Object

WebLOAD provides an embedded, third-party XML parser object to improve the multi-platform support for XML parsing within the WebLOAD environment. The XML parser object can be used instead of MSXML and Java XML parsing, resulting in lower memory consumption and increased performance during load testing.

The XML parser object can be used to reference any element in an XML document. For example, you can use the XML parser object to generate an Excel file containing the desired details of a specified element. WebLOAD uses the Open Source Xerces XML parser (see https://xerces.apache.org/xerces-c/).

The XML parser object is instanced as follows:

xmlObject = new XMLParserObject();

The parse() method, not exposed by the original XML parser, is exposed by WebLOAD. This method is identical to the parseURI() method, except that it receives an XML string instead of a URI. The following sections provide lists of exposed methods and properties as well as a detailed example of the implementation of the XML parser object.

Methods

The following table lists the XML parser object methods exposed by WebLOAD.

Object Method Name
xmlparser
- parseURI
- parse
- resetDocumentPool
- release
- setFeature
- getFeature
- canSetFeature
- load
- loadXML
xmlAttr
- getName
- getValue
- setValue
- getOwnerElement
- getSpecified
xmlCharacterData
- getData
- getLength
- appendData
- setData
- substringData
- deleteData
- insertData
- replaceData
xmlDocument
- createElement
- getElementById
- getDocumentElement
- getElementsByTagName
- createTextNode
- createDocumentFragment
- getDoctype
- createComment
- createCDATAsection
- createAttribute
- createEntityReference
- createProcessingInstruction
- createElementNS
- createAttributeNS
- getElementsByTagNameNS
- importNode
xmlDocumentType
- getName
- getPublicId
- getSystemId
- getInternalSubset
- getEntities
- getNotations
xmlElement
- getElementsByTagName
- getElementsByTagNameNS
- getAttribute
- getAttributeNS
- getAttributeNode
- getAttributeNodeNS
- setAttributeNode
- setAttributeNodeNS
- getTagName
- hasAttribute
- hasAttributeNS
- removeAttribute
- removeAttributeNS
- setAttribute
- setAttributeNS
- removeAttributeNode
xmlEntity
- getPublicId
- getSystemId
- getNotationName
xmlnamednodemap
- getLength
- getNamedItem
- removeNamedItem
- getNamedItemNS
- removeNamedItemNS
- setNamedItem
- setNamedItemNS
- item
xmlnode
- getNodeName
- getNodeValue
- getNodeType
- getParentNode
- getFirstChild
- getLastChild
- getPreviousSibling
- getNextSibling
- getChildNodes
- getAttributes
- getOwnerDocument
- getNamespaceURI
- getPrefix
- getLocalName
- hasChildNodes
- hasAttributes
- normalize
- release
- removeChild
- appendChild
- insertBefore
- setNodeValue
- setPrefix
- isSupported
xmlnodelist
- Item
- getLength
xmlNotation
- getPublicId
- getSystemId
- xmlProcessingInstruction
- getTarget
- getData
- setData

Properties

The following table lists the XML parser object properties exposed by WebLOAD.

Object Property Name
xmlAttr
- name
- value
xmlCharacterData
- length
- data
xmlDocument
- documentElement
xmlElement
- tagName
xmlnode
- nodeName
- attributes
- childNodes
- firstChild
- lastChild
- namespaceURI
- nextSibling
- nodeType
- nodeValue
- ownerDocument
- parentNode
- prefix
- previousSibling
- nodeTypeString
- xml
xmlnodelist
- length
xmlProcessingInstruction
- target
- Data

Example

The following is an example of the use of the XML parser object:

{
//Create the XML parser object (xerces-c parser) 
xmlObject = new XMLParserObject();

//Parse the xml file from the specified path 
xmlDoc = xmlObject.parseURI("C:\\xml_file.xml");

//Retrieve the first node with the "NODE5" tag
domNode = xmlDoc.getElementsByTagName("NODE5").item(0);

//Retrieve the node's type 
nodeType = domNode.getNodeType();

//Retrieve the node's parent
nodeParent = domNode.getParentNode().getNodeName();

//Retrieve the number of child nodes
numOfChilds = domNode.getChildNodes().getLength();

//Create a new element
newNode1 = xmlDoc.createElement("NEW_NODE1");

//Insert the new element into DOM 
domNode1.insertBefore(newNode1, domNode);

}