找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2334|回复: 0

[教程] php生成xml和转换[源码]

[复制链接]
发表于 2013-4-15 09:26:00 | 显示全部楼层 |阅读模式 来自 中国–广东–湛江
php生成xml就像树一样,逐个添加节点,可以在一个父节点下添加多个子节点, function madexml()
  1. {      //获取模板信息      $strTempInfo = $this->modelCmsObj->getTemplate('2007');      $arrTemp = explode('#',$strTempInfo);      array_shift($arrTemp);      $arrContents = array();      foreach($arrTemp as $k=>$v)      {          $arrContents[$k]=explode(',',$v);      }      //解析为xml文件      $objDom = new DOMDocument('1.0');      header('Content-Type: text/plain');       //添加元素和文本节点      $root = $objDom->createElement('recommend');      $objDom->appendChild($root);      foreach($arrContents as $k=>$v)      {      $item = $objDom->createElement('entry');      $root->appendChild($item);      $nextitem1 = $objDom->createElement('simgurl');      $nextitem2 = $objDom->createElement('imgurl');      $nextitem3 = $objDom->createElement('fileurl');      $item->appendChild($nextitem1);      $item->appendChild($nextitem2);      $item->appendChild($nextitem3);      $text1 = $objDom->createTextNode($v[0]);      $text = $objDom->createTextNode($v[1]);      $text2 = $objDom->createTextNode($v[2]);      $nextitem2->appendChild($text1);      $nextitem3->appendChild($text2);      $nextitem1->appendChild($text);      }       echo $objDom->saveXML();  }
复制代码
simplexml_load_string把xml串转化为字符串
  1. <?php  $string = <<<XML//声明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);   var_dump($xml);  ?>     This script will display:    SimpleXMLElement Object  (    [title] => Forty What?    [from] => Joe    [to] => Jane    [body] =>     I know that's the answer -- but what's the question?  )   
复制代码
如果想把xml转换为数组,先转换为字符串含有键值的字符串,然后再进行循环就可以成为数组了
  1. /**   * xml转换为数组   * @param unknown_type $xml   */ private function xml_to_array($xml)  {            $array = (array)(simplexml_load_string($xml,'SimpleXMLElement', LIBXML_NOCDATA));            foreach ($array as $key=>$item){              $array[$key]  = $this->struct_to_array((array)$item);            }            return $array;  }   private function struct_to_array($item) {            if(!is_string($item)) {              $item = (array)$item;              foreach ($item as $key=>$val){                $item[$key]  =  self::struct_to_array($val);              }            }            return $item;  }
复制代码

评分

参与人数 1金币 +1 收起 理由
猫性男孩 + 1 很给力!

查看全部评分

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-11-3 00:24 , Processed in 0.039192 second(s), 13 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表