PHP如何将XML转成数组

yipeiwu_com6年前PHP代码库

如果你使用 curl 获取的 xml data
xml=simplexmlloadstring(data);
data[′tk′]=jsondecode(jsonencode(xml),TRUE);
如果是直接获取 URL 数据的话
xml=simplexmlloadfile(data);
data[′tk′]=jsondecode(jsonencode(xml),TRUE);

先把 simplexml 对象转换成 json,再将 json 转换成数组。

代码:

<?php
$string = <<<XML
<?xml version='1.0'?> 
<document>
 <title>Forty What?</title>
 <from>Joe</from>
 <to>Jane</to>
 <body>
 I know that's the answer -- but what's the question?
 </body>
</document>
XML;

$xml=simplexml_load_string($string);
$data = json_decode(json_encode($xml),TRUE);
var_dump( $xml );
var_dump( $data );
object(SimpleXMLElement)[1]
 public 'title' => string 'Forty What?' (length=11)
 public 'from' => string 'Joe' (length=3)
 public 'to' => string 'Jane' (length=4)
 public 'body' => string '
 I know that's the answer -- but what's the question?
 ' (length=57)
array
 'title' => string 'Forty What?' (length=11)
 'from' => string 'Joe' (length=3)
 'to' => string 'Jane' (length=4)
 'body' => string '
 I know that's the answer -- but what's the question?
 ' (length=57)

以上就是本文的全部内容,希望对大家的学习有所帮助。

相关文章

php中preg_replace_callback函数简单用法示例

本文实例讲述了php中preg_replace_callback函数用法。分享给大家供大家参考,具体如下: mixed preg_replace_callback ( mixed pat...

PHP工厂模式、单例模式与注册树模式实例详解

本文实例讲述了PHP工厂模式、单例模式与注册树模式。分享给大家供大家参考,具体如下: 三种基本设计模式 1、工厂模式:工厂方法或者类生成对象,而不是在代码中直接new 2、单例模式:使...

php实现微信公众平台账号自定义菜单类

微信公众平台服务号可申请自定义菜单了,其它的号暂时不支持自定义菜单了,这个不但可以使用api来操作,还可以直接在后台定义菜单与参数哦。 服务号可以申请自定义菜单;使用QQ登录的公众号,可...

php实现遍历目录并删除指定文件中指定内容

php实现遍历目录并删除指定文件中指定内容

现在正坐在安静的寝室里,寒假俨然已经离我而去了……今天发的是我寒假里搞的最后一次学习,之后的时间就一直在看海贼王了。 以前写过一个C语言的遍历目录+复制文件的程序,很长很复杂,现在用PH...

PHP的时间戳与具体时间转化的简单实现

三个内置函数: time() //获取UNIX系统时间戳 mktime(hour,minute,second,month,day,year) //将指定时间转化为时间戳 d...