note 96031 deleted from class.xmlreader by danbrown

From: Date: Thu, 04 Feb 2010 02:55:53 +0000
Subject: note 96031 deleted from class.xmlreader by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-165647@lists.php.net to get a copy of this message
Note Submitter: Anonymous ---- <?php function xml_to_assoc($xml) { $tree = NULL; while ($xml->read()) { switch ($xml->nodeType) { case XMLReader::END_ELEMENT: return $tree; case XMLReader::ELEMENT: $node = $xml->isEmptyElement ? '' : xml_to_assoc($xml); $name = $xml->name; if ($xml->hasAttributes) { if ( ! is_array($node) && ! empty($node)) $node = array($node); while ($xml->moveToNextAttribute()) $node['attributes'][$xml->name] = $xml->value; } if (isset($tree[$name]) && ! isset($tree[$name][0])) { $array = $tree[$name]; unset($tree[$name]); $tree[$name][] = $array; } if (isset($tree[$name])) $tree[$name][] = $node; else $tree[$name] = $node; break; case XMLReader::TEXT: case XMLReader::CDATA: $tree .= $xml->value; } } return $tree; } $xml = new XMLReader(); #$xml->open($xmlfile); $xml->xml($xmlstring); $assoc = xml_to_assoc($xml); $xml->close(); echo "<pre>".print_r($assoc, true)."</pre>"; ?>

« previous php.notes (#165647) next »