## 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
users
->user
->val(1)
->email
->val('davert@mail.ua')
->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
1
davert@mail.ua
- useful item
1
```
### 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](https://github.com/Codeception/Codeception/blob/master/src/Codeception/Util/XmlBuilder.php)
### __construct
[See source](https://github.com/Codeception/Codeception/blob/2.2/src/Codeception/Util/XmlBuilder.php#L80)
### __get
Appends child node
* `param` $tag
* `return` XmlBuilder
[See source](https://github.com/Codeception/Codeception/blob/2.2/src/Codeception/Util/XmlBuilder.php#L93)
### __toString
[See source](https://github.com/Codeception/Codeception/blob/2.2/src/Codeception/Util/XmlBuilder.php#L165)
### attr
Sets attribute for current node
* `param` $attr
* `param` $val
* `return` XmlBuilder
[See source](https://github.com/Codeception/Codeception/blob/2.2/src/Codeception/Util/XmlBuilder.php#L120)
### getDom
* `return` \DOMDocument
[See source](https://github.com/Codeception/Codeception/blob/2.2/src/Codeception/Util/XmlBuilder.php#L173)
### parent
Traverses to parent
* `return` XmlBuilder
[See source](https://github.com/Codeception/Codeception/blob/2.2/src/Codeception/Util/XmlBuilder.php#L131)
### parents
Traverses to parent with $name
* `param` $tag
* `return` XmlBuilder
* `throws` \Exception
[See source](https://github.com/Codeception/Codeception/blob/2.2/src/Codeception/Util/XmlBuilder.php#L145)
### val
* `param` $val
* `return` XmlBuilder
[See source](https://github.com/Codeception/Codeception/blob/2.2/src/Codeception/Util/XmlBuilder.php#L106)