Home > php教程 > php手册 > PHP simplexml使用方法详解

PHP simplexml使用方法详解

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-05-25 16:42:14
Original
1289 people have browsed it

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

PHP XML处理XML代码如下:

<?xml version="1.0" encoding="UTF-8" 
<!-- Edited with XML Spy v2007 (http://www.phprm.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>
Copy after login

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(&#39;./simple.xml&#39;);
//var_dump($xml);
//echo $xml->getName();
//var_dump($xml->children());
$record = &#39;&#39;;
foreach ($xml->children() as $child) {
    $record.= &#39;<tr><td>&#39; . $child->attributes() . &#39;</td>&#39;;
    foreach ($child->children() as $item) {
        //var_dump($child);
        $record.= &#39;<td>&#39; . $item . &#39;</td>&#39;;
    }
    $record.= &#39;</tr>&#39;;
}
echo $record;
?>
</tbody> 
</table> 
</body> 
</html>
Copy after login

将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; 
}
Copy after login

//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>
Copy after login

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

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 
        ) 
    ) 
)
Copy after login


Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template