• Blog
  • Archives
  • Search
  • Comments
  • Tags
  • Links
  • LianDan
  • RSS

有梦就有快乐[杨恒飞]

Reg | Login

人生旅途慢慢,但有梦就会有快乐!

感谢阅读
php中将SimpleXMLElement Object数组转化为普通数组
By coldstar On 2010-02-28, 10:45 AM | Category: WEB开发 | Comments: 0

在PHP中可以用simplexml_load_file或者simplexml_load_string 方便地进行XML的分析,载入用print_r输出,可以看到输出了一个SimpleXMLElement Object数组,如下:

 

PHP代码
  1. $fileName = 't5.xml';
  2. $xml = simplexml_load_file($fileName);

  3. print_r($xml);
  4.  
  5. //输出的结果为:
  6. SimpleXMLElement Object   
  7. (   
  8.     [msg_code] => 3   
  9.     [msg] => 服务器端还有数据文件需要下载,请继续调用本接口下载数据文件   
  10.     [fileInfos] => SimpleXMLElement Object   
  11.         (   
  12.             [hashAlgorithm] => 0   
  13.             [compressionFormat] => 0   
  14.             [encryptAlgorithm] => 1   
  15.             [return_FileName] => 20100202143300_fujian_168.xml   
  16.             [beianInfo] => QXiI5v4+r2KWils6xuoueeIKzhEY2pJ+NZHZGv8LY7zxRWHbQBpOW7i81SiUbj
  17.             [beianInfoHash] => Vk7HjzNUZAa1a+M1jSe31g==   
  18.         )   
  19.     
  20. )   

 

此时可以使用 数组的调用方式,直接输出相应的索引项,比如 echo xml['msg'] 浏览器是可以正常输出的。

但是如果此时想把这个项赋值给一个变量或存入数据库,你会发现无法正常使用,为什么呢?

原因就是他是一个SimpleXMLElement Object,并不是一个标准的普通的数组项。此时如何才能简化使用呢。

非常简单,看如下几行代码:

PHP代码
  1. $fileName = 't5.xml';
  2. $xml = simplexml_load_file($fileName);
  3. $xml = (array)$xml;
  4. print_r($xml);
  5.  
  6. //输出的结果为:
  7. Array   
  8. (   
  9.     [msg_code] => 3   
  10.     [msg] => 服务器端还有数据文件需要下载,请继续调用本接口下载数据文件   
  11.     [fileInfos] => SimpleXMLElement Object   
  12.         (   
  13.             [hashAlgorithm] => 0   
  14.             [compressionFormat] => 0   
  15.             [encryptAlgorithm] => 1   
  16.             [return_FileName] => 20100202143300_fujian_168.xml   
  17.             [beianInfo] => QXiI5v4+r2KWils6xuoueeIKzhEY2pJ+NZHZGv8LY7zxRWHbQBpOW7i81SiUbj
  18.             [beianInfoHash] => Vk7HjzNUZAa1a+M1jSe31g==   
  19.         )   
  20.     
  21. )   

 

对比一下,上面的代码仅添加了一行 $xml = (array)$xml;

此时输出的内容中,第7行,已经由SimpleXMLElement Object 变为 Array 了。

其实就这么简单,只需要在需要调用的时候前用(array)转化为常规数组即可正常调用。

Tags: 数组 , simplexml
« 无法定位程序输入点DwmHintDxupdate于动态链接库USER32.dll 2010年要做的10件事»
Trackbacks
点击获得Trackback地址,Encode: UTF-8 点击获得Trackback地址,Encode: GB2312 or GBK 点击获得Trackback地址,Encode: BIG5
Leave a Comment

text(*):

  • View Model: Nomal | List
  • Category

    win7 (17) RSS 2.0 订阅这个分类

    Windows (39) RSS 2.0 订阅这个分类

    Linux (51) RSS 2.0 订阅这个分类

    WEB服务器 (73) RSS 2.0 订阅这个分类

    网站架构 (11) RSS 2.0 订阅这个分类

    存储与缓存 (2) RSS 2.0 订阅这个分类

    数据库技术 (20) RSS 2.0 订阅这个分类

    WEB开发 (22) RSS 2.0 订阅这个分类

    网站建设 (28) RSS 2.0 订阅这个分类

    安全相关 (24) RSS 2.0 订阅这个分类

    软件开发 (3) RSS 2.0 订阅这个分类

    网络观察 (20) RSS 2.0 订阅这个分类

    精彩瞬间 (20) RSS 2.0 订阅这个分类

    心情管理 (49) RSS 2.0 订阅这个分类

    个人收藏 (26) RSS 2.0 订阅这个分类

  • Calendar

    « 2010年07月 »
    日 一 二 三 四 五 六
    1 2 3
    4 5 6 7 8 9 10
    11 12 13 14 15 16 17
    18 19 20 21 22 23 24
    25 26 27 28 29 30 31
  • Random Aritcle

    java.lang.UnsatisfiedLinkError:/usr/local/jdk/jre/lib/i386/libawt.s libXp.so.6: cannot open shared object

    老公,抱我一分钟,好吗?

    在ATM 我把钱给了她

    403.18 - The specified request cannot be executed from current Application Pool

    linux下配置freeTDS让php支持mssql

    新编大学对联(搞笑版)

    小公司如何留住人

    语言没有好坏之分, 只有应用领域的不同

    Linux环境VNC服务安装、配置与使用

    感谢Google,27xs.com收录过10篇

  • Archives

    2010年07月 (17)

    2010年06月 (68)

    2010年05月 (32)

    2010年04月 (3)

    2010年03月 (8)

    2010年02月 (4)

    2010年01月 (19)

    2009年12月 (45)

    2009年11月 (28)

    2009年10月 (10)

    2009年09月 (15)

    2009年08月 (2)

    更多...

  • Others

    Powered by SaBlog-X.

    Designed by Giki+Kula.

    有梦就有快乐[杨恒飞] All rights reserved.

    陕ICP备07009322号