PHP将XML转数组过程详解

得到一个xml型的对象:


代码如下:

$resp = $this->c->execute($req, $sessionKey);//获得xml对象
$items=$resp->items;

那么读取对象的值,就用$items->item,或者$items->item->price,如此操作很不方便,不符合php操作数组的习惯。

php提供了array方法将对象转换成数组,只要把你要转换数组的对象前面加上(array)就行了。

比如将$items->item(有很多item的对象)转换成数组:


代码如下:

foreach ($items->item as $item){
         $goods[]=(array)$item;
}

$goods就是一个php数组了。
转换前:


代码如下:

SimpleXMLElement Object
(
    [cid] => 50003793
    [modified] => 2013-04-18 17:16:25
    [nick] => qq307819623
    [price] => 200.00
    [title] => Nokia N97全新行货
)
SimpleXMLElement Object
(
    [cid] => 50024921
    [modified] => 2013-04-18 16:58:06
    [nick] => qq307819623
    [pic_url] =>pic.jpg
    [price] => 888888.00
    [title] => 刘俊仲
)
SimpleXMLElement Object
(
    [cid] => 1512
    [modified] => 2013-04-18 16:56:46
    [nick] => qq307819623
    [pic_url] => item_pic.jpg
    [price] => 323232.00
    [title] => 二手你好
)
SimpleXMLElement Object
(
    [cid] => 50012166
    [modified] => 2013-04-18 15:10:07
    [nick] => qq307819623
    [pic_url] =>0-item_pic.jpg
    [price] => 32.00
    [title] => 放大率拉德斯基分拉沙德疯了似的看法拉斯法
)

转换后:


代码如下:

Array
(
    [0] => Array
        (
            [cid] => 50003793
            [modified] => 2013-04-18 17:16:25
            [nick] => qq307819623
            [price] => 200.00
            [title] => Nokia N97全新行货
        )

[1] => Array
        (
            [cid] => 50024921
            [modified] => 2013-04-18 16:58:06
            [nick] => qq307819623
            [pic_url] => pic.jpg
            [price] => 888888.00
            [title] => 刘俊仲
        )

[2] => Array
        (
            [cid] => 1512
            [modified] => 2013-04-18 16:56:46
            [nick] => qq307819623
            [pic_url] =>item_pic.jpg
            [price] => 323232.00
            [title] => 二手你好
        )

[3] => Array
        (
            [cid] => 50012166
            [modified] => 2013-04-18 15:10:07
            [nick] => qq307819623
            [pic_url] => 0-item_pic.jpg
            [price] => 32.00
            [title] => 放大率拉德斯基分拉沙德疯了似的看法拉斯法
        )

(0)

相关推荐

  • 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= $ma

  • PHP数组生成XML格式数据的封装类实例

    本文实例讲述了PHP数组生成XML格式数据的封装类.分享给大家供大家参考,具体如下: 类库代码:MakeXML.php: <?php /** * MakeXML * * @author Lin Jiong(slime09@gmail.com) * @version v1.0 * @license Copyright (c) 2009 Lin Jiong (www.cn09.com) * The LGPL (http://www.gnu.org/licenses/lgpl.html) licens

  • php中Array2xml类实现数组转化成XML实例

    本文实例讲述了php中Array2xml类实现数组转化成XML的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <?php class Array2xml {     var $xml;     function array2xml($array,$encoding='utf-8') {         $this->xml='<?xml version="1.0" encoding="'.$encoding.'"?>'

  • PHP如何将XML转成数组

    如果你使用 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 =

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

    本文实例讲述了php实现xml转换数组的方法.分享给大家供大家参考,具体如下: <?php $info = '<?xml version="1.0" encoding="utf-8" ?> <data> <GeocoderSearchResponse> <status>OK</status> <result> <location> <lat>39.94921<

  • php之XML转数组函数的详解

    如下所示: 复制代码 代码如下: <?/** * xml2array() will convert the given XML text to an array in the XML structure. * Link: http://www.bin-co.com/php/scripts/xml2array/ * Arguments : $contents - The XML text *                 $get_attributes - 1 or 0. If this is

  • php实现XML和数组的相互转化功能示例

    本文实例讲述了php实现XML和数组的相互转化功能.分享给大家供大家参考,具体如下: 数组转化为xml: function arrtoxml($arr,$dom=0,$item=0){ if (!$dom){ $dom = new DOMDocument("1.0"); } if(!$item){ $item = $dom->createElement("root"); $dom->appendChild($item); } foreach ($arr

  • 递归实现php数组转xml的代码分享

    PHP中将数组转为xml的需求是常见的,而且实现方法也有很多种,百度找了一下各种实现方法,但是基本是借组一些组件啥的.我就自己写了一个字符串拼组的方法,支持多维数组.仅供参考,不足之处敬请不吝赐教! /** * 将数组转换为xml * @param array $data 要转换的数组 * @param bool $root 是否要根节点 * @return string xml字符串 * @author Dragondean * @url http://www.cnblogs.com/drag

  • PHP中将数组转成XML格式的实现代码

    下面是网上的 复制代码 代码如下: class ArrayToXML { /** * The main function for converting to an XML document. * Pass in a multi dimensional array and this recrusively loops through and builds up an XML document. * * @param array $data * @param string $rootNodeName

  • php实现将数组转换为XML的方法

    本文实例讲述了php实现将数组转换为XML的方法.分享给大家供大家参考.具体如下: 1. php代码如下: <?php class A2Xml { private $version = '1.0'; private $encoding = 'UTF-8'; private $root = 'root'; private $xml = null; function __construct() { $this->xml = new XmlWriter(); } function toXml($da

  • PHP实现数组array转换成xml的方法

    本文实例讲述了PHP实现数组array转换成xml的方法.分享给大家供大家参考,具体如下: <?php $elementLevel = 0 ; function array_Xml($array, $keys = '') { global $elementLevel; if(!is_array($array)) { if($keys == ''){ return $array; }else{ return "\n<$keys>" . $array . "&l

  • PHP XML和数组互相转换详解

    PHP XML和数组互相转换 //数组转XML function arrayToXml($arr) { $xml = "<xml>"; foreach ($arr as $key=>$val) { if (is_numeric($val)){ $xml.="<".$key.">".$val."</".$key.">"; }else{ $xml.="<

  • PHP处理数组和XML之间的互相转换

    在开发中,我们经常会遇到数组与XML之间的互相转换,尤其在处理接口开发的时候经常用到,比如对方客户端POST一个XML格式的数据到服务器上,服务器上的程序要负责接收解析,还有需要将数据表数据以XML格式提供给第三方等等应用. 本文我们将简单介绍如何使用PHP处理数组和XML之间的互相转换. 源码下载:PHP数组与XML之间的转换 PHP将数组转换成XML  PHP可以将数组转换成xml格式,简单的办法是遍历数组,然后将数组的key/value转换成xml节点,再直接echo输出了,如: func

随机推荐