PHP simplexml使用方法详解

作者:袖梨 2022-06-24

PHP XML处理XML代码如下

 代码如下 复制代码



 
  Belgian Waffles
  $5.95
  two of our famous Belgian Waffles with plenty of real maple syrup
  650
 

 
  Strawberry Belgian Waffles
  $7.95
  light Belgian waffles covered with strawberries and whipped cream
  900
 

 
  Berry-Berry Belgian Waffles
  $8.95
  light Belgian waffles covered with an assortment of fresh berries and whipped cream
  900
 


php解决xml代码

 代码如下 复制代码




使用simpleXML处理XML











 // 使用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 .= '

';
  foreach ($child->children() as $item)
  {
   //var_dump($child);
   $record .= '';
  }
  $record .= '';
 }
 echo $record;
?>

  name price description calories
'. $child->attributes(). ''. $item .'


将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文档——————

 




  
    bddg
    abcdefg
    5
    2
  

  
    baidongdaogu
    aaa
    1
    2
  

  
    baidongdaogu
    aaa
    1
    2
  


————转换后的数组————

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
        )
    )
)

相关文章

精彩推荐