Home  >  Article  >  Backend Development  >  PHP解析XML转成数组

PHP解析XML转成数组

WBOY
WBOYOriginal
2016-06-13 13:33:16843browse

PHP解析XML转成数组 在线等

XML code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
<?xml version="1.0" encoding="UTF-8"?>
<root>
   <a>
      <b name="name" value="value"></b>
      <b name="name" value="value"></b>
      <b name="name" value="value"></b>
   </a>
   <a>
      <b name="name" value="value"></b>
      <b name="name" value="value"></b>
      
   </a>
   <a>
      <b name="name" value="value"></b>
      <b name="name" value="value"></b>
      <b name="name" value="value"></b>
     <b name="name" value="value"></b>
   </a>
</root>


  解析成数组:
PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
    Array(
       [0]=>Array(
            [0]=>Array(name=>'name',value=>'value'),
            [1]=>Array(name=>'name',value=>'value'),
            [2]=>Array(name=>'name',value=>'value')
       ),
       [1]=>Array(
         [0]=>Array(name=>'name',value=>'value'),
         [1]=>Array(name=>'name',value=>'value'),
         [2]=>Array(name=>'name',value=>'value')
       ),
       [2]=>Array(
         [0]=>Array(name=>'name',value=>'value'),
         [1]=>Array(name=>'name',value=>'value'),
         [2]=>Array(name=>'name',value=>'value')
      ),
)



------解决方案--------------------
PHP code
<?php $xml=<<<XML
<?xml version="1.0" encoding="UTF-8"?>
<root>
   <a>
      <b name="name" value="value"></b>
      <b name="name" value="value"></b>
      <b name="name" value="value"></b>
   </a>
   <a>
      <b name="name" value="value"></b>
      <b name="name" value="value"></b>
      
   </a>
   <a>
      <b name="name" value="value"></b>
      <b name="name" value="value"></b>
      <b name="name" value="value"></b>
     <b name="name" value="value"></b>
   </a>
</root>
XML;

$obj=simplexml_load_string($xml);
foreach($obj as $k=>$v){
    $temp=array();
    foreach ($v->b as $sv) {
        $a=(array)$sv->attributes();
        $temp[]=$a['@attributes'];
    }
    $arr[]=$temp;
}
print_r($arr);
<br><font color="#e78608">------解决方案--------------------</font><br>
PHP code
$s =
<root>
   <a>
      <b name="name" value="value"></b>
      <b name="name" value="value"></b>
      <b name="name" value="value"></b>
   </a>
   <a>
      <b name="name" value="value"></b>
      <b name="name" value="value"></b>
   </a>
   <a>
      <b name="name" value="value"></b>
      <b name="name" value="value"></b>
      <b name="name" value="value"></b>
     <b name="name" value="value"></b>
   </a>
</root>
XML;

$xml = simplexml_load_string($s);

foreach($xml as $item1) {
  $r = array();
  foreach($item1 as $item2) {
    $t = array();
    foreach($item2->attributes() as $k=>$v) {
      $t[] = array($k => "$v");
    }
    $r[] = $t;
  }
  $res[] = $r;
}

print_r($res); <div class="clear">
                 
              
              
        
            </div>
Statement:
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