note 106745 deleted from ref.xml by danbrown
| From: | danbrown@php.net | Date: | Tue, 06 Dec 2011 18:44:53 +0000 |
| Subject: | note 106745 deleted from ref.xml by danbrown | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-184954@lists.php.net to get a copy of this message | ||
Note Submitter: Glen at ITIStudios dot ca
----
This is supplimental information for the "class xmlToArrayParser" (that follows) which was
was included in my original Dec 2010 post.
This is a fully functional error free, extensively tested php class unlike the posts that follow it.
Key phrase: Fully functional, fully tested, error free XML To Array parser.
<?php
/**
* class xmlToArrayParser
*
Notes:
1. 'attrib' and 'cdata' are keys added to the array when the element contains
both attributes and content.
2. Ignores content that is not in between it's own set of tags.
3. Don't know if it recognizes processing instructions nor do I know about processing
instructions.
<\?some_pi some_attr="some_value"?> This is the same as a document
declaration.
4. Empty elements are not included unless they have attributes.
5. Version 2.0, Dec. 2, 2011, added xml error reporting.
Usage:
$domObj = new xmlToArrayParser($xml);
$elemVal = $domObj->array['element']
Or assign the entire array to its own variable:
$domArr = $domObj->array;
$elemVal = $domArr['element']
Example:
$xml = '<?xml version="1.0" encoding="UTF-8"
standalone="no"?>
<top>
<element1>element content 1</element1>
<element2 var2="val2" />
<element3 var3="val3" var4="val4">element content 3</element3>
<element3 var5="val5">element content 4</element3>
<element3 var6="val6" />
<element3>element content 7</element3>
</top>';
$domObj = new xmlToArrayParser($xml);
$domArr = $domObj->array;
if($domObj->parse_error) echo $domObj->get_xml_error();
else print_r($domArr);
On Success:
$domArr['top']['element1'] => element content 1
$domArr['top']['element2']['attrib']['var2'] => val2
$domArr['top']['element3']['0']['attrib']['var3']
=> val3
$domArr['top']['element3']['0']['attrib']['var4']
=> val4
$domArr['top']['element3']['0']['cdata'] => element
content 3
$domArr['top']['element3']['1']['attrib']['var5']
=> val5
$domArr['top']['element3']['1']['cdata'] => element
content 4
$domArr['top']['element3']['2']['attrib']['var6']
=> val6
$domArr['top']['element3']['3'] => element content 7
On Error:
Error Code [76] "Mismatched tag", at char 58 on line 3
*
*/
?>