1. Go to this page and download the library: Download saloonphp/xml-wrangler library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
saloonphp / xml-wrangler example snippets
use Saloon\XmlWrangler\XmlReader;
$reader = XmlReader::fromString($xml);
// Retrieve all values as one simple array
$reader->values(); // ['breakfast_menu' => [['name' => '...'], ['name' => '...'], ['name' => '...']]
// Use dot-notation to find a specific element
$reader->value('food.0')->sole(); // ['name' => 'Belgian Waffles', 'price' => '$5.95', ...]
// Use the element method to get a simple Element DTO containing attributes and content
$reader->element('food.0')->sole(); // Element::class
// Use XPath to query the XML
$reader->xpathValue('//food[@bestSeller="true"]/name')->get(); // ['Belgian Waffles', 'Berry-Berry Belgian Waffles']
// Use getAttributes() to get the attributes on the elements
$reader->element('food.0')->sole()->getAttributes(); // ['soldOut' => false, 'bestSeller' => true]
// Use getContent() to get the contents of the elements
$reader->element('food.0')->sole()->getContent(); // ['name' => 'Belgian Waffles', 'price' => '$5.95', ...]
use Saloon\XmlWrangler\Data\Element;
use Saloon\XmlWrangler\XmlWriter;
$writer = new XmlWriter;
$xml = $writer->write('breakfast_menu', [
'food' => [
[
'name' => 'Belgian Waffles',
'price' => '$5.95',
'description' => 'Two of our famous Belgian Waffles with plenty of real maple syrup',
'calories' => '650',
],
[
'name' => 'Strawberry Belgian Waffles',
'price' => '$7.95',
'description' => 'Light Belgian waffles covered with strawberries and whipped cream',
'calories' => '900',
],
// You can also use the Element class if you need to define elements with
// namespaces or with attributes.
Element::make([
'name' => 'Berry-Berry Belgian Waffles',
'price' => '$8.95',
'description' => 'Light Belgian waffles covered with an assortment of fresh berries and whipped cream',
'calories' => '900',
])->setAttributes(['bestSeller' => 'true']),
],
]);
use Saloon\XmlWrangler\XmlReader;
$reader = XmlReader::fromString('<?xml version="1.0" encoding="utf-8"
$reader = XmlReader::fromString(...);
$elements = $reader->elements(); // Array of `Element::class` DTOs
$values = $reader->values(); // Array of values.
use Saloon\XmlWrangler\XmlWriter;
$xml = XmlWriter::make()->write('root', [
'name' => 'Sam',
'twitter' => '@carre_sam',
'facts' => [
'favourite-song' => 'Luke Combs - When It Rains It Pours'
],
]);
use Saloon\XmlWrangler\XmlWriter;
use Saloon\XmlWrangler\Data\Element;
$xml = XmlWriter::make()->write('root', [
'name' => 'Sam',
'twitter' => Element::make('@carre_sam')->addAttribute('url', 'https://twitter.com/@carre_sam'),
'facts' => [
'favourite-song' => 'Luke Combs - When It Rains It Pours'
],
'soap:custom-namespace' => Element::make()->addNamespace('soap', 'http://www.w3.org/2003/05/soap-envelope'),
]);
use Saloon\XmlWrangler\XmlWriter;
use Saloon\XmlWrangler\Data\Element;
$xml = XmlWriter::make()->write('root', [
'name' => 'Luke Combs',
'songs' => [
'song' => [
'Fast Car',
'The Kind Of Love We Make',
'Beautiful Crazy',
Element::make('She Got The Best Of Me')->addAttribute('hit', 'true'),
],
],
]);
use Saloon\XmlWrangler\Data\RootElement;
$rootElement = RootElement::make('root')->addNamespace('soap', 'http://www.w3.org/2003/05/soap-envelope');
$xml = XmlWriter::make()->write($rootElement, [...])
use Saloon\XmlWrangler\Data\CDATA;use Saloon\XmlWrangler\XmlWriter;
use Saloon\XmlWrangler\Data\Element;
$xml = XmlWriter::make()->write('root', [
'name' => 'Sam',
'custom' => CDATA::make('Here is some CDATA content!'),
]);
use Saloon\XmlWrangler\XmlWriter;
use Saloon\XmlWrangler\Data\Element;
class BelgianWafflesElement extends Element
{
protected function compose(): void
{
$this
->setAttributes([
'soldOut' => 'false',
'bestSeller' => 'true',
])
->setContent([
'name' => 'Belgian Waffles',
'price' => '$5.95',
'description' => 'Two of our famous Belgian Waffles with plenty of real maple syrup',
'calories' => '650',
]);
}
}
$writer = XmlWriter::make()->write('root', [
'food' => new BelgianWafflesElement,
]);
use Saloon\XmlWrangler\XmlWriter;
$writer = new XmlWriter();
$writer->setXmlEncoding('ISO-8859-1');
$writer->setXmlVersion('2.0');
$writer->setXmlStandalone(true);
// $writer->write(...);
use Saloon\XmlWrangler\XmlWriter;
$writer = new XmlWriter();
$writer->addProcessingInstruction('xml-stylesheet', 'type="text/xsl" href="base.xsl"');
$xml = $writer->write('root', ['name' => 'Sam']);
use Saloon\XmlWrangler\XmlWriter;
$xml = XmlWriter::make()->write('root', [...], minified: true);
xml
<breakfast_menu>
<food soldOut="false" bestSeller="true">
<name>Belgian Waffles</name>
<price>$5.95</price>
<description>Two of our famous Belgian Waffles with plenty of real maple syrup</description>
<calories>650</calories>
</food>
<food soldOut="false" bestSeller="false">
<name>Strawberry Belgian Waffles</name>
<price>$7.95</price>
<description>Light Belgian waffles covered with strawberries and whipped cream</description>
<calories>900</calories>
</food>
<food soldOut="false" bestSeller="true">
<name>Berry-Berry Belgian Waffles</name>
<price>$8.95</price>
<description>Light Belgian waffles covered with an assortment of fresh berries and whipped cream</description>
<calories>900</calories>
</food>
</breakfast_menu>
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.