PHP如何将XML转成数组

yipeiwu_com5年前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模拟post上传图片实现代码

php模拟post上传图片实现代码

本文实例为大家分享了php模拟post上传图片的具体代码,供大家参考,具体内容如下 服务器和客户端都是php语言 但是客户端不是网页,不在浏览器上运行,而是在命令行运行 现在要做的是在客...

sql注入与转义的php函数代码

sql注入:   正常情况下:     delete.php?id=3;    $sql = 'delete from news where id = '.$_GET['id'];   ...

深入研究PHP中的preg_replace和代码执行

深入研究PHP中的preg_replace和代码执行

前言 本文将深入研究 preg_replace /e 模式下的代码执行问题,其中包括 preg_replace 函数的执行过程分析、正则表达式分析、漏洞触发分析,当中的坑非常多,相信看完...

关于php curl获取301或302转向的网址问题的解决方法

关于php curl获取301或302转向的网址问题的解决方法

在使用php的curl获取远程文件,代码如下: 复制代码 代码如下: <? $ghurl = isset($_GET['id']) ? $_GET['id']:'http://ww...

PHP中的闭包(匿名函数)浅析

闭包也叫匿名函数 PHP5.3 引入。 使用方法 需要调整数组元素中的值 复制代码 代码如下: $data = range(0, 100);//想要每个元素的值都加上.html的后缀 $...