Search

Codeception\Util\XmlBuilder

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)

Appends child node

  • param $tag
  • return XmlBuilder

See source

__toString()

public __toString()

See source

attr()

public attr($attr, $val)

Sets attribute for current node

  • param $attr
  • param $val
  • return XmlBuilder

See source

getDom()

public getDom()

  • return \DOMDocument

See source

parent()

public parent()

Traverses to parent

  • return XmlBuilder

See source

parents()

public parents($tag)

Traverses to parent with $name

  • param $tag
  • return XmlBuilder
  • throws \Exception

See source

val()

public val($val)

  • param $val
  • return 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

Not sure what to test?

Let your users tell you!

Turn user feedback into tests

with Bugira Bugtracker