<?php function xml2assoc($xml) { $tree = null; while($xml->read()) switch ($xml->nodeType) { case XMLReader::END_ELEMENT: return $tree; case XMLReader::ELEMENT: $node = array('tag' => $xml->name, 'value' => $xml->isEmptyElement ? '' : xml2assoc($xml)); if($xml->hasAttributes) while($xml->moveToNextAttribute()) $node['attributes'][$xml->name] = $xml->value; $tree[] = $node; break; case XMLReader::TEXT: case XMLReader::CDATA: } return $tree; } ?> <?php $xml = new XMLReader(); $xml->open('test.xml'); $assoc = xml2assoc($xml); echo $assoc; $xml->close(); print_r($assoc); ?>
<CATALOG> <PLANT> <COMMON>Bloodroot</COMMON> <BOTANICAL>Sanguinaria canadensis</BOTANICAL> <ZONE>4</ZONE> <LIGHT>Mostly Shady</LIGHT> <PRICE>$2.44</PRICE> <AVAILABILITY>031599</AVAILABILITY> </PLANT> <PLANT> <COMMON>Columbine</COMMON> <BOTANICAL>Aquilegia canadensis</BOTANICAL> <ZONE>3</ZONE> <LIGHT>Mostly Shady</LIGHT> <PRICE>$9.37</PRICE> <AVAILABILITY>030699</AVAILABILITY> </PLANT> </CATALOG>
Witam, orientuje sie ktos jak mozna przerobic ta funkcje, na taka ktora zwroci zrozumialy tekst z kodu XML? Czyli przykladowo: Common: Bloodroot i pod spodem kolejne atrybuty.
Z gory dziekuje za jakiekolwiek pomocne komentarze i zycze milego dnia :)