โค้ด: เลือกทั้งหมด
<?php
function parseXMLtoObject($xml) {
$obj = new stdClass();
$xml = explode("\n",$xml);
$main_n = '';
foreach ($xml as $x) {
$first_n = false;
$close_n = false;
if ($x != '') {
$start_val = (strpos($x,">")+1);
$end_val = strrpos($x,"<") - $start_val;
$start_n = (strpos($x,"<")+1);
$end_n = strpos($x,">") - $start_n;
$n = strtolower(substr($x,$start_n,$end_n));
if (substr_count($x,"<") == 1) {
if (!empty($main_n) && !stristr($n,"/")) {
$submain_n = $n;
$first_n = true;
} else {
$main_n = $n;
$submain_n = '';
$first_n = true;
}
}
if (!empty($submain_n) && stristr($submain_n,"/")) {
$submain_n = '';
$first_n = false;
$close_n = true;
}
if (!empty($main_n) && stristr($main_n,"/")) {
$main_n = '';
$submain_n = '';
$first_n = false;
$close_n = true;
}
$value = substr($x,$start_val,$end_val);
if (!$close_n) {
if (empty($main_n)) {
$obj->$n = $value;
} else {
if ($first_n) {
if (empty($submain_n)) {
$obj->$main_n = new stdClass();
} else {
$obj->$main_n->$submain_n = new stdClass();
}
} else {
if (!empty($value)) {
if (empty($submain_n)) {
$obj->$main_n->$n = $value;
} else {
$obj->$main_n->$submain_n->$n = $value;
}
}
}
}
}
}
}
return $obj;
}
?>