Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 网站建设 > PHP > xml2array 完美实现
【标  题】:xml2array 完美实现
【关键字】:xml2array
【来  源】:http://www.cublog.cn/u/15199/showart.php?id=153725

xml2array 完美实现

Your Ad Here
本来php手册中有simplexml2array的原型,可是我发现他有BUG,
也曾发帖提问过,没有引起大家的注意。就自己重新写了一个
 
<?php
/*****
  功能:本来php手册中有simplexml2array的原型,可是我发现他有BUG,
  也曾发帖提问过,没有引起大家的注意。就自己重新写了一个
  作者:achun    achun.shx@gamil.com
  版权:BSD
  日期:2006-8-10
**/
//这是原来的
function simplexml2array($xml) {
   if (get_class($xml) == 'SimpleXMLElement') {
       $attributes = $xml->attributes();
       foreach($attributes as $k=>$v) {
           if ($v) $a[$k] = (string) $v;
       }
       $x = $xml;
       $xml = get_object_vars($xml);
   }
   if (is_array($xml)) {
       if (count($xml) == 0) return (string) $x; // for CDATA
       foreach($xml as $key=>$value) {
           $r[$key] = simplexml2array($value);
       }
       if (isset($a)) $r['@'] = $a;    // Attributes
       return $r;
   }
   return (string) $xml;
}
//这是我写的
function simplexml4array($xmle){
  $haschildren=false;
  foreach($xmle->children() as $k=>$c)
  {
    $haschildren=true;
    $r[$k]=simplexml4array($c);
  }
  foreach($xmle->attributes() as $k=>$c)
  {
    $r['@'][$k]=(string)$c;
  }
  if(!$haschildren)
  {
    $r['innerText']=(string)$xmle;
  }
  return $r;
}
//附上一个测试的例子
$str=<<<XML
<?xml version="1.0" ?>
<library>
    <book>
        <ddd id="x6" dd="xx">swwss</ddd>
        <ddd id="y7" dd='yy'>
            <dd>ccc</dd>
        </ddd>
    </book>
</library>
XML;

$xml = simplexml_load_string($str);
print_r(simplexml2array($xml));
print_r(simplexml4array($xml));
?>
自己一个人开发一个网站的话,前台后台都得自己做。:【上一篇】
SPE 运行一段时间就不能用了?:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • 修复客户端 JScript 内存泄漏 By shawl.qiu
  • 巧寻Word空格
  • 跟跟我一起写 Makefile
  • 更换HSZ50控制器
  • 191红皮书第四章
  • 关于Log4j比较全面的配置.........
  • 数据专用移动通信的技术进步与网络维护
  • hacmp添加第二个网络
  • XML与HTML的结合(下)
  • 第九招 善意警告
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.