首页 > 语言 > PHP > 正文

PHP将XML转数组过程详解

2024-09-04 11:47:00
字体:大 中 小
来源:转载
供稿:网友

本文讲的是用PHP将XML对象转换成数组的方法,得到一个xml型的对象:

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

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

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

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

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

$goods就是一个php数组了。

转换前代码如下:

  1. SimpleXMLElement Object 
  2. ( 
  3.     [cid] => 50003793 
  4.     [modified] => 2013-04-18 17:16:25 
  5.     [nick] => qq307819623 
  6.     [price] => 200.00 
  7.     [title] => Nokia N97全新行货 
  8. ) 
  9. SimpleXMLElement Object 
  10. ( 
  11.     [cid] => 50024921 
  12.     [modified] => 2013-04-18 16:58:06 
  13.     [nick] => qq307819623 
  14.     [pic_url] =>pic.jpg 
  15.     [price] => 888888.00 
  16.     [title] => 刘俊仲 
  17. ) 
  18. SimpleXMLElement Object 
  19. ( 
  20.     [cid] => 1512 
  21.     [modified] => 2013-04-18 16:56:46 
  22.     [nick] => qq307819623 
  23.     [pic_url] => item_pic.jpg 
  24.     [price] => 323232.00 
  25.     [title] => 二手你好 
  26. ) //Vevb.com 
  27. SimpleXMLElement Object 
  28. ( 
  29.     [cid] => 50012166 
  30.     [modified] => 2013-04-18 15:10:07 
  31.     [nick] => qq307819623 
  32.     [pic_url] =>0-item_pic.jpg 
  33.     [price] => 32.00 
  34.     [title] => 放大率拉德斯基分拉沙德疯了似的看法拉斯法 
  35. ) 

转换后代码如下:

  1. Array 
  2. ( 
  3.     [0] => Array 
  4.         ( 
  5.             [cid] => 50003793 
  6.             [modified] => 2013-04-18 17:16:25 
  7.             [nick] => qq307819623 
  8.             [price] => 200.00 
  9.             [title] => Nokia N97全新行货 
  10.         ) 
  11.  
  12.     [1] => Array 
  13.         ( 
  14.             [cid] => 50024921 
  15.             [modified] => 2013-04-18 16:58:06 
  16.             [nick] => qq307819623 
  17.             [pic_url] => pic.jpg 
  18.             [price] => 888888.00 
  19.             [title] => 刘俊仲 
  20.         ) 
  21.  
  22.     [2] => Array 
  23.         ( 
  24.             [cid] => 1512 
  25.             [modified] => 2013-04-18 16:56:46 
  26.             [nick] => qq307819623 
  27.             [pic_url] =>item_pic.jpg 
  28.             [price] => 323232.00 
  29.             [title] => 二手你好 
  30.         ) 
  31.  
  32.     [3] => Array 
  33.         ( 
  34.             [cid] => 50012166 
  35.             [modified] => 2013-04-18 15:10:07 
  36.             [nick] => qq307819623 
  37.             [pic_url] => 0-item_pic.jpg 
  38.             [price] => 32.00 
  39.             [title] => 放大率拉德斯基分拉沙德疯了似的看法拉斯法 
  40.         ) 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表