, (*1)
Converts XML to object
Input:, (*2)
<root>
<detail detailid="3721899" formattedoem="90311-71001" manufacturer="TOYOTA">
<properties>
<property code="Name" detailpropertyid="6086730" locale="en_US" property="ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅"/>
<property property="ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅" rate="5" value="ο½ΆοΎο½Όο½¬οΎοΎο½Ύο½―οΎο½¨οΎο½ΈοΎ ο½΅ο½²οΎ ο½Όο½°οΎ"/>
<property rate="5" value="0.035 ΠΊΠ³"/>
</properties>
</detail>
<detail detailid="4445210" formattedoem="20621-71001" manufacturer="TOYOTA">
<properties>
<property code="Name" detailpropertyid="6086730" locale="en_US" property="ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅"/>
<property property="ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅" rate="5" value="ο½ΆοΎο½Όο½¬οΎοΎο½Ύο½―οΎο½¨οΎο½ΈοΎ ο½΅ο½²οΎ ο½Όο½°οΎ"/>
</properties>
</detail>
</root>
Output:, (*3)
{
"_tagName": "root",
"_childrenProperty": "children",
"children": [
{
"_tagName": "detail",
"_childrenProperty": "properties",
"detailid": "3721899",
"formattedoem": "90311-71001",
"manufacturer": "TOYOTA",
"properties": [
{
"_tagName": "property",
"_childrenProperty": null,
"code": "Name",
"detailpropertyid": "6086730",
"locale": "en_US",
"property": "ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅"
},
{
"_tagName": "property",
"_childrenProperty": null,
"property": "ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅",
"rate": "5",
"value": "ο½ΆοΎο½Όο½¬οΎοΎο½Ύο½―οΎο½¨οΎο½ΈοΎ ο½΅ο½²οΎ ο½Όο½°οΎ"
},
{
"_tagName": "property",
"_childrenProperty": null,
"rate": "5",
"value": "0.035 ΠΊΠ³"
}
]
},
{
"_tagName": "detail",
"_childrenProperty": "properties",
"detailid": "4445210",
"formattedoem": "20621-71001",
"manufacturer": "TOYOTA",
"properties": [
{
"_tagName": "property",
"_childrenProperty": null,
"code": "Name",
"detailpropertyid": "6086730",
"locale": "en_US",
"property": "ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅"
},
{
"_tagName": "property",
"_childrenProperty": null,
"property": "ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅",
"rate": "5",
"value": "ο½ΆοΎο½Όο½¬οΎοΎο½Ύο½―οΎο½¨οΎο½ΈοΎ ο½΅ο½²οΎ ο½Όο½°οΎ"
}
]
}
]
}
Features
- converts desired tags to properties
- fast
- memory saving
Installation
The preferred way to install this extension is through composer., (*4)
Either run, (*5)
php composer.phar require --prefer-dist pastuhov/php-xml2object
or add, (*6)
"require-dev": {
"pastuhov/php-xml2object": "~1.0.0"
...
to the require section of your composer.json file., (*7)
Usage
use pastuhov\xml2object\Parser;
$converter = new Parser();
$converter->xml = file_get_contents(__DIR__ . '/data/xml.xml');
$object = $converter->process();
Testing
./vendor/bin/phpunit
Security
If you discover any security related issues, please email pastukhov_k@sima-land.ru instead of using the issue tracker., (*8)