加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_开封站长网 (http://www.0378zz.com/)- 科技、AI行业应用、媒体智能、低代码、办公协同!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP simplexml运用方法详解

发布时间:2022-02-10 06:33:53 所属栏目:PHP教程 来源:互联网
导读:本文章给来大家讲一下关于PHP下simplexml使用方法,希望通过此文章能提升大家对simplexml操作xml文档的理解,有需要了解的朋友可参考. PHP XML处理XML代码如下: ?xml version=1.0 encoding=UTF-8? !-- Edited with XML Spy v2007 (http://www.Cuoxin.com) --
  本文章给来大家讲一下关于PHP下simplexml使用方法,希望通过此文章能提升大家对simplexml操作xml文档的理解,有需要了解的朋友可参考.
 
  PHP XML处理XML代码如下:
 
  <?xml version="1.0" encoding="UTF-8"?>
  <!-- Edited with XML Spy v2007 (http://www.Cuoxin.com) -->
  <breakfast_menu>
   <food id="1">
    <name>Belgian Waffles</name>
    <price>$5.95</price>
    <description>two of our famous Belgian Waffles with plenty of real maple syrup</description>
    <calories>650</calories>
   </food>
   <food id="2">
    <name>Strawberry Belgian Waffles</name>
    <price>$7.95</price>
    <description>light Belgian waffles covered with strawberries and whipped cream</description>
    <calories>900</calories>
   </food>
   <food id="3">
    <name>Berry-Berry Belgian Waffles</name>
    <price>$8.95</price>
    <description>light Belgian waffles covered with an assortment of fresh berries and whipped cream</description>
    <calories>900</calories>
   </food>
  </breakfast_menu>
  php解决xml代码,代码如下:
 
  <html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>使用simpleXML处理XML</title>
  </head>
  
  <body>
  <table border="1" cellpadding="0" cellspacing="0" width="700">
  </tbody>
  <tr bgcolor="green">
  <th width="5%"> </th>
  <th width="20%">name</th>
  <th width="10%">price</th>
  <th width="55%">description</th>
  <th width="10%">calories</th>
  </tr>
  <?php
   // 使用simpleXML处理XML
  
   $xml = simplexml_load_file('./simple.xml');
   //var_dump($xml);
   //echo $xml->getName();
   //var_dump($xml->children());
   $record = '';
   foreach ($xml->children() as $child)
   {
    $record .= '<tr><td>'. $child->attributes(). '</td>';
    foreach ($child->children() as $item)
    {
     //var_dump($child);
     $record .= '<td>'. $item .'</td>';
    }
    $record .= '</tr>';
   }//开源代码Cuoxin.com
   echo $record;
  ?>
  </tbody>
  </table>
  </body>
  </html>
  将XML转换为数组结构,代码如下:
 
  private function change_simple_xml_to_array($obj){
    $i = 0;
    //从根节点下的二层子节点开始遍历
    foreach($obj->children() as $value){
      //如果发生同级、同标签名的情况,则加一维数组;
      if(isset($last_name) && $value->getName()==$last_name){
        //出现同名发现第二个,则推入第二维数组;
        if($i==1) $arr[$last_name]=array($arr[$last_name]);
        //遍历子节点;
        array_push($arr[$last_name],$this->change_simple_xml_to_array($value));
      }else{
        $last_name = $value->getName();
        if(count($value->children())==0) $arr[$last_name] = $value."";
        else $arr[$last_name] = $this->change_simple_xml_to_array($value);
      }
      $i++;
    }
    return $arr;
  }
  
  //XML文档——————
  
  <?xml version="1.0" encoding="utf-8"?>
  <use>
    <login id="1">
      <user>bddg</user>
      <pas>abcdefg</pas>
      <permission><fdsa>5</fdsa></permission>
      <online_time>2</online_time>
    </login>
    <login id="2">
      <user>baidongdaogu</user>
      <pas>aaa</pas>
      <permission>1</permission>
      <online_time>2</online_time>
    </login>
    <login id="3">
      <user>baidongdaogu</user>
      <pas>aaa</pas>
      <permission>1</permission>
      <online_time>2</online_time>
    </login>
  </use>
  
  //转换后的数组————
  
  Array
  (
    [login] => Array
      (
        [0] => Array
          (
            [user] => bddg
            [pas] => abcdefg
            [permission] => Array
              (
                [fdsa] => 5
              )
  
            [online_time] => 2
          )
  
        [1] => Array
          (
            [user] => baidongdaogu
            [pas] => aaa
            [permission] => 1
            [online_time] => 2
          ) 

PHP simplexml运用方法详解

(编辑:开发网_开封站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读