加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP simplexml使用方法具体说明

发布时间:2023-07-24 09:27:15 所属栏目:PHP教程 来源:
导读:本文章给来大家讲一下关于PHP下simplexml使用方法,希望通过此文章能提升大家对simplexml操作xml文档的理解,有需要了解的朋友可参考.

PHP XML处理XML代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!--
本文章给来大家讲一下关于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%">&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>'; 
 }//开源代码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 
        ) 
 
      [2] => Array 
        ( 
          [user] => baidongdaogu 
          [pas] => aaa 
          [permission] => 1 
          [online_time] => 2 
        ) 
    ) 

(编辑:汽车网)

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

    推荐文章