PHP は、XML 形式の文字列を解析して SimpleXMLElement オブジェクトを返す simplexml_load_string メソッドを提供します。ただし、一般的な配列の方が適しているため、このメソッドは完全にテストされており、SimpleXMLElement オブジェクトのマルチレベルのネストをサポートしています。
2 つのパラメーターを指定します。最初のパラメーターは SimpleXMLElement オブジェクト、2 番目のパラメーターはブール値で、最終的な戻り値にルート ノードが含まれるかどうかを制御します。
function xmlToArr ($xml, $root = true) {
if (!$xml->children()) {
return (string) $xml
}
$array = array(); $xml->children() as $element => $node) {
$totalElement = count($xml->{$element});
if (!isset($array[$element]);
$array[$element] = "";
}
// 属性があります
if ($attributes = $node->attributes()) {
$data = array(
'attributes' => array() ,
'value' => (count($node) > 0) ? $this->__xmlToArr($node, false) : (string) $node
foreach ($attr =>); ; $value) {
$data['attributes'][$attr] = (文字列) $value;
if ($totalElement > 1) {
$array[$element][] = $data; } else {
$array[$element] = $data;
}
// 単なる値
} else {
if ($totalElement > 1) {
$array[$element][] = $this-> ;__xmlToArr($node, false);
} else {
$array[$element] = $this->__xmlToArr($node, false);
}
}
}
if ($root) {
return 配列($xml->getName() => $array); else {
return $array
}
}
出典: マンゴーステーション
http://www.bkjia.com/PHPjc/363778.html
www.bkjia.com