note 83781 modified in ref.simplexml by danbrown
| From: | danbrown@php.net | Date: | Mon, 18 May 2009 01:10:55 +0000 |
| Subject: | note 83781 modified in ref.simplexml by danbrown | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-155490@lists.php.net to get a copy of this message | ||
A small 'n nice function to extract an XML and return it as an array. If there is a bug, please
let me know here. I testet it for my purposes and it works.
<?php
public function extractXML($xml) {
if (!($xml->children())) {
return (string) $xml;
}
foreach ($xml->children() as $child) {
$name=$child->getName();
if (count($xml->$name)==1) {
$element[$name] = $this->extractXML($child);
} else {
$element[][$name] = $this->extractXML($child);
}
}
return $element;
}
// you can call it this way
$xml = false;
$xml = @simplexml_load_string($xmlstring);
// 1)
if ($xml) {
$array = extractXML($xml);
} else {
$array = false;
}
// 2)
if ($xml) {
$array[$xml->getName()] = extractXML($xml);
} else {
$array = false;
}
?>
--was--
A small 'n nice function to extract an XML and return it as an array. If there is a bug, please
let me know here. I testet it for my purposes and it works.
<?php
public function extractXML($xml) {
if (!($xml->children())) {
return (string) $xml;
}
foreach ($xml->children() as $child) {
$name=$child->getName();
if (count($xml->$name)==1) {
$element[$name] = $this->extractXML($child);
} else {
$element[][$name] = $this->extractXML($child);
}
}
return $element;
}
// you can call it this way
$xml = false;
$xml = @simplexml_load_string($xmlstring);
// 1)
if ($xml) {
$array = extractXML($xml);
} else {
$array = false;
}
// 2)
if ($xml) {
$array[$xml->getName()] = extractXML($xml);
} else {
$array = false;
}
?>
http://php.net/manual/en/ref.simplexml.php