A wrapper of the XML parser and builder

Maintainers

👁 TheNorthMemory

Package info

github.com/TheNorthMemory/xml

pkg:composer/thenorthmemory/xml

Statistics

Installs: 666 588

Dependents: 21

Suggesters: 0

Stars: 9

Open Issues: 0

1.1.1 2023-01-15 06:01 UTC

Requires

  • php: >=7.1.2
  • ext-libxml: *
  • ext-simplexml: *

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

Apache-2.0 6f50c63450a0b098772423f8bdc3c4ad2c4c30bb

xml-parserxml-builder

This package is auto-updated.

Last update: 2026-06-14 04:57:35 UTC


README

Split from the wechatpay-php project for general usages.

👁 GitHub actions
👁 Packagist Stars
👁 Packagist Downloads
👁 Packagist Version
👁 Packagist PHP Version Support
👁 Packagist License

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.

License

Apache-2.0 License