php实现xml转换数组的方法示例

yipeiwu_com6年前PHP代码库

本文实例讲述了php实现xml转换数组的方法。分享给大家供大家参考,具体如下:

<?php
$info = '<?xml version="1.0" encoding="utf-8" ?>
      <data>
        <GeocoderSearchResponse>
          <status>OK</status>
          <result>
            <location>
              <lat>39.94921</lat>
              <lng>116.463619</lng>
            </location>
          <precise>0</precise>
          <confidence>50</confidence>
          <level>脚本</level>
          </result>
        </GeocoderSearchResponse>
        <GeocoderSearchResponse>
          <status>OK</status>
          <result>
            <location>
              <lat>39</lat>
              <lng>116</lng>
            </location>
          <precise>0</precise>
          <confidence>50</confidence>
          <level>脚本123</level>
          </result>
        </GeocoderSearchResponse>
      </data>';
$xml = simplexml_load_string($info);
function xml2array($xmlobject) {
  if ($xmlobject) {
    foreach ((array)$xmlobject as $k=>$v) {
      $data[$k] = !is_string($v) ? xml2array($v) : $v;
    }
    return $data;
  }
}
$data = xml2array($xml);
var_dump($data);
?>

运行结果如下:

array(1) {
 ["GeocoderSearchResponse"]=>
 array(2) {
  [0]=>
  array(2) {
   ["status"]=>
   string(2) "OK"
   ["result"]=>
   array(4) {
    ["location"]=>
    array(2) {
     ["lat"]=>
     string(8) "39.94921"
     ["lng"]=>
     string(10) "116.463619"
    }
    ["precise"]=>
    string(1) "0"
    ["confidence"]=>
    string(2) "50"
    ["level"]=>
    string(6) "脚本"
   }
  }
  [1]=>
  array(2) {
   ["status"]=>
   string(2) "OK"
   ["result"]=>
   array(4) {
    ["location"]=>
    array(2) {
     ["lat"]=>
     string(2) "39"
     ["lng"]=>
     string(3) "116"
    }
    ["precise"]=>
    string(1) "0"
    ["confidence"]=>
    string(2) "50"
    ["level"]=>
    string(9) "脚本123"
   }
  }
 }
}

PS:这里再为大家提供几款关于xml操作的在线工具供大家参考使用:

在线XML/JSON互相转换工具:
http://tools.jb51.net/code/xmljson

在线格式化XML/在线压缩XML:
http://tools.jb51.net/code/xmlformat

XML在线压缩/格式化工具:
http://tools.jb51.net/code/xml_format_compress

XML代码在线格式化美化工具:
http://tools.jb51.net/code/xmlcodeformat

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP针对XML文件操作技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP错误与异常处理方法总结》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

相关文章

php自定文件保存session的方法

本文实例讲述了php自定文件保存session的方法。分享给大家供大家参考。具体实现方法如下: session.inc.php文件:定义session的文件存储,session解决方案,...

PHP转盘抽奖接口实例

本文实例讲述了PHP转盘抽奖接口的实现方法。分享给大家供大家参考。具体如下: 这里的转盘抽奖随机返回一个转盘角度,概率可自己定义 lottery_get.php接口文件如下: 复制代码...

php使用curl代理实现抓取数据的方法

本文实例讲述了php使用curl代理实现抓取数据的方法。分享给大家供大家参考,具体如下: <?php define ( 'IS_PROXY', true ); //是否...

PHP实现获取毫秒时间戳的方法【使用microtime()函数】

本文实例讲述了PHP实现获取毫秒时间戳的方法。分享给大家供大家参考,具体如下: PHP获取毫秒时间戳,利用microtime()函数 php本身没有提供返回毫秒数的函数,但提供了一个mi...

PHP中鲜为人知的10个函数

PHP里有非常丰富的内置函数,很多我们都用过,但仍有很多的函数我们大部分人都不熟悉,可它们却十分的有用。这篇文章里,我列举了一些鲜为人知但会让你眼睛一亮的PHP函数。 levenshte...