Testomatio - Test Management for Codeception
StringableThat’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>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.public __construct()
public __get($tag)
param string $tagreturn \Codeception\Util\XmlBuilderAppends child node
public __toString()
return stringpublic attr($attr, $val)
param string $attrparam string $valreturn \Codeception\Util\XmlBuilderSets attribute for current node
public getDom()
return \DOMDocumentpublic parent()
return \Codeception\Util\XmlBuilderTraverses to parent
public parents($tagName)
param string $tagNamethrows Exceptionreturn \Codeception\Util\XmlBuilderTraverses to parent with $tagName
public val($val)
param string $valreturn \Codeception\Util\XmlBuilder