moccalotto / exemel
There is no license information available for the latest version (0.4.1) of this package.
Easyer reading and writing of XML documents
This package's canonical repository appears to be gone and the package has been frozen as a result. Email us for help if needed.
0.4.1
2016-07-30 09:54 UTC
Requires
- php: >=5.5.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^1.11
- phpspec/phpspec: ^2.5
This package is not auto-updated.
Last update: 2026-03-15 05:18:07 UTC
README
Easily construct and modify XML documents using fluint API.
Installation
To add this package as a local, per-project dependency to your project, simply add a dependency on
moccalotto/exemel to your project's composer.json file like so:
{
"require": {
"moccalotto/exemel": "~0.1"
}
}
Alternatively simply call composer require moccalotto/exemel
Demo
<?php require 'vendor/autoload.php'; function ensure($condition) { if (!$condition) { throw new RuntimeException('Condition failed'); } } $xml = new Moccalotto\Exemel\Xml(new SimpleXmlElement('<root/>')); // <root /> /* * Add attr="attr0" to the root element */ $xml->set('[attr]', 'attr0'); ensure($xml->get('[attr]') == 'attr0'); ensure($xml->root()['attr'] == 'attr0'); // <root attr="attr0" /> /* * Add an element called <foo> * Inside that, add an element called <bar> * Set the contents of <bar> to "el1" */ $xml->set('foo/bar', 'el1'); ensure($xml->get('foo/bar') == 'el1'); ensure((string) $xml->root()->foo->bar == 'el1'); // <root attr="attr0"> // <foo> // <bar>el1</bar> // </foo> // </root> /* * Add attr="attr1" to the newly added <bar> element */ $xml->set('foo/bar[ding]', 'attr1'); ensure($xml->get('foo/bar[ding]') == 'attr1'); ensure((string) $xml->root()->foo->bar['ding'] == 'attr1'); // <root attr="attr0"> // <foo> // <bar ding="attr1">el1</bar> // </foo> // </root> /* * Add a new <foo> element to the root. * Inside that, add a <bar> element with the contents "el2" */ $xml->set('foo[]/bar', 'el2'); ensure($xml->get('foo[1]/bar') == 'el2'); ensure((string) $xml->root()->foo[1]->bar == 'el2'); // <root attr="attr0"> // <foo> // <bar ding="attr1">el1</bar> // </foo> // <foo> // <bar>el2</bar> // </foo> // </root> echo $xml->formatted();