/
Parsing XML

Parsing XML

For processing incoming XML documents, use xml.parse{} to parse the document into an XML node tree, which you can then manipulate and process as required.

local X = xml.parse{data=SampleXML}

Once the document is parsed, here are some techniques to work with your parsed XML data using the XML API and the XML Library’s extended capabilities:

There are two methods to finding a named element:

  1. Use the XML Library’s node.findElement() to search the full node tree for the specified element name. nil will be returned if not present.

local LabInfo = xml.findElement(X,'lab_info')
  1. Use node.selectElement() to get the element by specifying the parent of the element. Also see how to use the shorthand Colon Operator.

-- Specify the direct parent via the query input 'direct_parent/element_name' X:selectElement('message/lab_info')' -- Or specify the direct parent by calling node.select on X.message X.message:selectElement('lab_info')

Both methods will return the lab_info element. You can use the Annotations to view the results:

Using the XML library’s node.selectElement() you can quickly search through the XML for specific elements using various conditions including a specified:

Repeat:

Attribute Value:

Nested Element Value:

In the Annotations, click through to see the three resulting elements:

Similarly, node.selectElement() can be used to find a specific attribute:

Use node.selectNumber() and node.selectText() to get an element or attributes specified value:

Remember you can also use :nodevalue() for most nodes and :nodetext()to capture text values if you aren’t using the XML library.

 

 

Related content

XML Structure and Node Types
XML Structure and Node Types
More like this
Parsing and Serializing JSON
Parsing and Serializing JSON
Read with this
Using XMLUtils.lua Module for Extended XML Functionality
Using XMLUtils.lua Module for Extended XML Functionality
More like this
Building HTTP Requests
Building HTTP Requests
Read with this
XML Techniques
XML Techniques
More like this
HTTP Response Structure
HTTP Response Structure
Read with this