thenorthmemory / xml
A wrapper of the XML parser and builder
Installs: 301 242
Dependents: 16
Suggesters: 0
Security: 0
Stars: 9
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: >=7.1.2
- ext-libxml: *
- ext-simplexml: *
Requires (Dev)
- phpstan/phpstan: ^0.12.89 || ^1.0
- phpunit/phpunit: ^7.5 || ^8.5.16 || ^9.3.5
README
Split from the wechatpay-php project for general usages.
Install
composer require thenorthmemory/xml
Usage
use TheNorthMemory\Xml\Transformer; $array = Transformer::toArray('<xml><hello>world</hello></xml>'); // print_r($array); // Array // ( // [hello] => world // ) $xml = Transformer::toXml($array); // print_r($xml); // <xml><hello>world</hello></xml> $xml = <<<TencentCOSRequest <Request> <Operation> <WatermarkTemplateId>t146d70eb241c44c63b6efc1cc93ccfc5d</WatermarkTemplateId> <WatermarkTemplateId>t12a74d11687d444deba8a6cc52051ac27</WatermarkTemplateId> </Operation> </Request> TencentCOSRequest; $array = Transformer::toArray($xml); // Array // ( // [Operation] => Array // ( // [WatermarkTemplateId] => Array // ( // [0] => t146d70eb241c44c63b6efc1cc93ccfc5d // [1] => t12a74d11687d444deba8a6cc52051ac27 // ) // ) // ) $xml1 = Transformer::toXml($array, true, true, 'Request'); // print_r($xml1); // <Request> // <Operation> // <WatermarkTemplateId> // <item>t146d70eb241c44c63b6efc1cc93ccfc5d</item> // <item>t12a74d11687d444deba8a6cc52051ac27</item> // </WatermarkTemplateId> // </Operation> // </Request> $array['Operation']['WatermarkTemplateId'] = Transformer::wrap($array['Operation']['WatermarkTemplateId'], true, 'WatermarkTemplateId'); $xml2 = Transformer::toXml($array, true, true, 'Request'); // print_r($xml2); // <Request> // <Operation> // <WatermarkTemplateId>t146d70eb241c44c63b6efc1cc93ccfc5d</WatermarkTemplateId> // <WatermarkTemplateId>t12a74d11687d444deba8a6cc52051ac27</WatermarkTemplateId> // </Operation> // </Request>
API
Transformer::toArray(string $xml = '<xml/>')
Parse the XML string
to array
.
Transformer::sanitize(string $xml = '<xml/>')
Sanitize the XML string
in the XML1.0 20081126 Character Range.
Transformer::toXml(array $data, bool $headless = true, bool $indent = false, string $root = 'xml', string $item = 'item'): string
Build the data array
to XML string
.
Transformer::wrap(array $data, bool $wrapped = false, string $label = 'item'): LabeledArrayIterator
Wrap the array
data with a label
and wrapped
flag.