当前位置:首页 > PHP教程 > php高级应用 > 列表

PHP simplexml使用方法详解

发布:smiling 来源: PHP粉丝网  添加日期:2014-08-20 13:48:29 浏览: 评论:0 

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

PHP XML处理XML代码如下:

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <!-- Edited with XML Spy v2007 (http://www.phpfensi.com) --> 
  3. <breakfast_menu> 
  4.  <food id="1"> 
  5.   <name>Belgian Waffles</name> 
  6.   <price>$5.95</price> 
  7.   <description>two of our famous Belgian Waffles with plenty of real maple syrup</description> 
  8.   <calories>650</calories> 
  9.  </food> 
  10.  <food id="2"> 
  11.   <name>Strawberry Belgian Waffles</name> 
  12.   <price>$7.95</price> 
  13.   <description>light Belgian waffles covered with strawberries and whipped cream</description> 
  14.   <calories>900</calories> 
  15.  </food> 
  16.  <food id="3"> 
  17.   <name>Berry-Berry Belgian Waffles</name> 
  18.   <price>$8.95</price> 
  19.   <description>light Belgian waffles covered with an assortment of fresh berries and whipped cream</description> 
  20.   <calories>900</calories> 
  21.  </food> 
  22. </breakfast_menu> 

php解决xml代码,代码如下:

  1. <html> 
  2. <head> 
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  4. <title>使用simpleXML处理XML</title> 
  5. </head> 
  6.  
  7. <body> 
  8. <table border="1" cellpadding="0" cellspacing="0" width="700"
  9. </tbody> 
  10. <tr bgcolor="green"
  11. <th width="5%">&nbsp;</th> 
  12. <th width="20%">name</th> 
  13. <th width="10%">price</th> 
  14. <th width="55%">description</th> 
  15. <th width="10%">calories</th> 
  16. </tr> 
  17. <?php 
  18.  // 使用simpleXML处理XML 
  19.  
  20.  $xml = simplexml_load_file('./simple.xml'); 
  21.  //var_dump($xml); 
  22.  //echo $xml->getName(); 
  23.  //var_dump($xml->children()); 
  24.  $record = ''
  25.  foreach ($xml->children() as $child
  26.  { 
  27.   $record .= '<tr><td>'$child->attributes(). '</td>'
  28.   foreach ($child->children() as $item
  29.   { 
  30.    //var_dump($child); 
  31.    $record .= '<td>'$item .'</td>'
  32.   } 
  33.   $record .= '</tr>'
  34.  }//开源代码phpfensi.com 
  35.  echo $record
  36. ?> 
  37. </tbody> 
  38. </table> 
  39. </body> 
  40. </html> 

将XML转换为数组结构,代码如下:

  1. private function change_simple_xml_to_array($obj){ 
  2.   $i = 0; 
  3.   //从根节点下的二层子节点开始遍历 
  4.   foreach($obj->children() as $value){ 
  5.     //如果发生同级、同标签名的情况,则加一维数组; 
  6.     if(isset($last_name) && $value->getName()==$last_name){ 
  7.       //出现同名发现第二个,则推入第二维数组; 
  8.       if($i==1) $arr[$last_name]=array($arr[$last_name]); 
  9.       //遍历子节点; 
  10.       array_push($arr[$last_name],$this->change_simple_xml_to_array($value)); 
  11.     }else
  12.       $last_name = $value->getName(); 
  13.       if(count($value->children())==0) $arr[$last_name] = $value.""
  14.       else $arr[$last_name] = $this->change_simple_xml_to_array($value); 
  15.     } 
  16.     $i++; 
  17.   } 
  18.   return $arr
  19.  
  20. //XML文档—————— 
  21.  
  22. <?xml version="1.0" encoding="utf-8"?> 
  23. <use
  24.   <login id="1"
  25.     <user>bddg</user> 
  26.     <pas>abcdefg</pas> 
  27.     <permission><fdsa>5</fdsa></permission> 
  28.     <online_time>2</online_time> 
  29.   </login> 
  30.   <login id="2"
  31.     <user>baidongdaogu</user> 
  32.     <pas>aaa</pas> 
  33.     <permission>1</permission> 
  34.     <online_time>2</online_time> 
  35.   </login> 
  36.   <login id="3"
  37.     <user>baidongdaogu</user> 
  38.     <pas>aaa</pas> 
  39.     <permission>1</permission> 
  40.     <online_time>2</online_time> 
  41.   </login> 
  42. </use
  43.  
  44. //转换后的数组———— 
  45.  
  46. Array 
  47.   [login] => Array 
  48.     ( 
  49.       [0] => Array 
  50.         ( 
  51.           [user] => bddg 
  52.           [pas] => abcdefg 
  53.           [permission] => Array 
  54.             ( 
  55.               [fdsa] => 5 
  56.             ) 
  57.  
  58.           [online_time] => 2 
  59.         ) 
  60.  
  61.       [1] => Array 
  62.         ( 
  63.           [user] => baidongdaogu 
  64.           [pas] => aaa 
  65.           [permission] => 1 
  66.           [online_time] => 2 
  67.         ) 
  68.  
  69.       [2] => Array 
  70.         ( 
  71.           [user] => baidongdaogu 
  72.           [pas] => aaa 
  73.           [permission] => 1 
  74.           [online_time] => 2 
  75.         ) 
  76.     ) 

Tags: simplexml 使用simplexml

分享到: