php下将XML转换为数组

复制代码 代码如下:

  // Xml 转 数组, 包括根键

  function xml_to_array( $xml )

  {

  $reg = "/<(\w+)[^>]*>([\\x00-\\xFF]*)<\\/\\1>/";

  if(preg_match_all($reg, $xml, $matches))

  {

  $count = count($matches[0]);

  for($i = 0; $i < $count; $i++)

  {

  $subxml= $matches[2][$i];

  $key = $matches[1][$i];

  if(preg_match( $reg, $subxml ))

  {

  $arr[$key] = xml_to_array( $subxml );

  }else{

  $arr[$key] = $subxml;

  }

  }

  }

  return $arr;

  }

  // Xml 转 数组, 不包括根键

  function xmltoarray( $xml )

  {

  $arr = xml_to_array($xml);

  $key = array_keys($arr);

  return $arr[$key[0]];

  }