Search

Codeception\Util\XmlBuilder

  • 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.

<?php
$xml = new \Codeception\Util\XmlBuilder();
$xml->users
   ->user
       ->val(1)
       ->email
           ->val('[email protected]')
           ->attr('valid','true')
           ->parent()
       ->cart
           ->attr('empty','false')
           ->items
               ->item
                   ->val('useful item');
               ->parents('user')
       ->active
           ->val(1);
echo $xml;

This will produce this XML

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

Usage

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.

Export:

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

Source code

__construct()

public __construct()

See source

__get()

public __get($tag)

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

Appends child node

See source

__toString()

public __toString()

  • return string

See source

attr()

public attr($attr, $val)

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

Sets attribute for current node

See source

getDom()

public getDom()

  • return \DOMDocument

See source

parent()

public parent()

  • return \Codeception\Util\XmlBuilder

Traverses to parent

See source

parents()

public parents($tagName)

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

Traverses to parent with $tagName

See source

val()

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