php-junior / laravel-xml
A simple XML to Array converter for Laravel
1.0.2
2024-12-10 15:11 UTC
Requires
- php: ^8.2
- ext-dom: *
- ext-libxml: *
- ext-simplexml: *
- illuminate/support: ^10.0||^11.0
Requires (Dev)
- orchestra/testbench: ^9.5
- phpunit/phpunit: ^10.5|^11.0.1
README
This package is a simple XML to Array converter for Laravel.
Installation
You can install the package via composer:
composer require php-junior/laravel-xml
Usage
default xml root tag is root
use Illuminate\Support\Arr; $data = [ 'name' => 'John Doe', 'description' => 'This is a <strong>description</strong>', 'bio01' => 'This is a <strong>bio01</strong>', 'bio02' => 'This is a <strong>bio02</strong>', 'bio03' => 'This is a <strong>bio03</strong>', 'bio04' => 'This is a <strong>bio04</strong>', ]; $xml = Arr::toXml($data); <root> <name>John Doe</name> ... </root> // change root tag $xml = Arr::toXml($data, 'user'); <user> <name>John Doe</name> ... </user> // cdata tag $xml = Arr::toXml($data, 'user', ['description']); <user> <name>John Doe</name> <description><![CDATA[This is a <strong>description</strong>]]></description> ... </user> // cdata wildcard tag $xml = Arr::toXml($data, 'user', ['bio*']); <user> <name>John Doe</name> <bio01><![CDATA[This is a <strong>bio01</strong>]]></bio01> <bio02><![CDATA[This is a <strong>bio02</strong>]]></bio02> <bio03><![CDATA[This is a <strong>bio03</strong>]]></bio03> <bio04><![CDATA[This is a <strong>bio04</strong>]]></bio04> </user> // multi-dimensional array Arr::toXml([ 'user' => [ [ 'name' => 'User', 'email' => 'user@user.com' ], [ 'name' => 'User 2', 'email' => 'user2@user.com' ], ] ], 'users'); <users> <user> <name>User</name> <email>user@user.com</email> </user> <user> <name>User 2</name> <email>user2@user.com</email> </user> </users> // xml to array $data = Arr::fromXml($xml); [ 'name' => 'John Doe', 'description' => 'This is a <strong>description</strong>', 'bio01' => 'This is a <strong>bio01</strong>', 'bio02' => 'This is a <strong>bio02</strong>', 'bio03' => 'This is a <strong>bio03</strong>', 'bio04' => 'This is a <strong>bio04</strong>', ]
Testing
composer test
Changelog
Please see CHANGELOG for more information what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email nyinyilwin1992@hotmail.com instead of using the issue tracker.
License
The MIT License (MIT). Please see License File for more information.