好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

PHP simplexml使用方法详解 - php高级应用

PHP simplexml使用方法详解

本文章给来大家讲一下关于PHP下simplexml使用方法,希望通过此文章能提升大家对simplexml操作xml文档的理解,有需要了解的朋友可参考.

PHP XML处理XML代码如下:

<? xml   version = "1.0"   encoding = "UTF-8" ?>   <!-- Edited with XML Spy v2007 (http://www.phpfensi.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%" >&nbsp;</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>' ;   } //开源代码phpfensi.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          )          [2] => Array          (            [user] => baidongdaogu            [pas] => aaa            [permission] => 1            [online_time] => 2          )      )  ) 

查看更多关于PHP simplexml使用方法详解 - php高级应用的详细内容...

  阅读:34次