Skip to content

The XML Parse step reads the XML held in one column of a source table and turns it into rows. For each input row it finds every occurrence of the element you name and emits one output row per match, projecting that element’s attributes and child-tag values onto columns.

It is the equivalent of the Alteryx XML Parse tool. The parsing runs in the workflow engine (databases cannot parse XML in SQL), so the step is native to PlaidCloud and has no SQL fallback.

XML document<order id=“1”><name>Ann</name><item>a</item></order>parseflat columnsorder_idnameitem1Anna
Table XML Parse turns an XML document into plain rows and columns — elements and attributes become fields downstream steps can use directly.
  • Source Table — the table whose rows hold the XML to parse.
  • Output Table — the table the parsed rows are written to.
  • XML Field — the column holding the XML text.
  • Element — the element whose every occurrence becomes an output row. Leave it blank to parse the top-level elements.
  • Read the element as an XPath 1.0 expression — treat Element as an XPath 1.0 expression instead of a name, so it can use predicates, attribute tests, wildcards, and functions such as count(), name() and contains(). A relative path starts at the document’s root element. Each item the expression selects becomes one output row. An element is parsed as usual. Any other item, such as an attribute or the result of count(), replaces the XML Field value in its row with its value; with child values on, a selected attribute gets a column of its own name instead. The XML is read with entities and network access turned off, and a document that isn’t well-formed fails the step unless you skip such rows.
  • Emit child element values as columns — for each matched element, add a column per child tag holding that child’s value.
  • Emit each child’s outer XML — additionally add a <tag>_OuterXML column holding each child’s serialized XML (useful when a child itself nests more XML you parse in a later step).
  • Skip rows whose XML cannot be parsed — drop an input row whose value is not well-formed XML instead of failing the step.

The Columns tab is the standard data mapper for the passthrough columns — the source columns you want carried through onto each output row.

The columns the parse discovers — an element’s attributes and child tags — are added to the output automatically; you do not list them here. When an extracted name collides with a passthrough column (or an earlier extracted one), it is de-duplicated by appending a number (id → id2 → id3), matching Alteryx.

A chain of XML Parse steps works the way Alteryx’s does: every incoming column is passed through, so a later step can re-parse a column an earlier step produced and reference the earlier step’s extracted columns.