• Implements Stringable

That’s a pretty simple yet powerful class to build XML structures in jQuery-like style. With no XML line actually written! Uses DOM extension to manipulate XML data.

$xml = new \Codeception\Util\XmlBuilder();
           ->val('[email protected]')
                   ->val('useful item');
echo $xml;

This will produce this XML

<?xml version="1.0"?>
       <email valid="true">[email protected]</email>
       <cart empty="false">
               <item>useful item</item>


Builder uses chained calls. So each call to builder returns a builder object. Except for getDom and __toString methods.

  • $xml->node - create new xml node and go inside of it.
  • $xml->node->val('value') - sets the inner value of node
  • $xml->attr('name','value') - set the attribute of node
  • $xml->parent() - go back to parent node.
  • $xml->parents('user') - go back through all parents to user node.


  • $xml->getDom - get a DOMDocument object
  • $xml->__toString - get a string representation of XML.

Source code


public __construct()

See source


public __get($tag)

  • param string $tag
  • return \Codeception\Util\XmlBuilder

Appends child node

See source


public __toString()

  • return string

See source


public attr($attr, $val)

  • param string $attr
  • param string $val
  • return \Codeception\Util\XmlBuilder

Sets attribute for current node

See source


public getDom()

  • return \DOMDocument

See source


public parent()

  • return \Codeception\Util\XmlBuilder

Traverses to parent

See source


public parents($tagName)

  • param string $tagName
  • throws Exception
  • return \Codeception\Util\XmlBuilder

Traverses to parent with $tagName

See source


public val($val)

  • param string $val
  • return \Codeception\Util\XmlBuilder

See source


Reference is taken from the source code. Help us to improve documentation. Edit module reference
Don't know how to write tests on your own? We will build or improve them for you. Request a quote for official enterprise support or trainings