php 中simplexml_load_string解析几种类型的xml


网上有很多解析xml的方法,但是我比较喜欢使用simplexml_load_string()这个方法来解析,下面看一下两种类型的xml解析过程:

(1)
<?php

    $xml='<xml name="sendBatch" result="1">
    <Item cid="333" sid="333" msgid="111" total="1" price="0.10" remain="170.040"/>
  <Item cid="444" sid="444" msgid="222" total="1" price="0.10" remain="169.940"/>
</xml>';
    $re=simplexml_load_string(utf8_encode($xml));
    if($re['result']==1)
    {
         foreach ($re->Item as $item)
           {
            
               $stat['msgid'] =trim((string)$item['msgid']);
               $stat['total']=trim((string)$item['total']);
               $stat['price']=trim((string)$item['price']);
               $stat['remain']=trim((string)$item['remain']);
               $stat_arr[]=$stat;
            
         }
         if(is_array($stat_arr))
         {
          echo "发送成功,返回值为".$re['result'];
         }
        
    }

?>

(2)
 <?php

$re="<?xml version='1.0' encoding='utf-8'?>
<messStatus>
<status>0</status>
<error>0</error>
<mess>
<pmess><sender>13223758566</sender><receiver>393023</receiver><cont></cont><indatatime>2014-5-31 12:31:43</indatatime></pmess>
<pmess><sender>15555101223</sender><receiver>393023</receiver><cont>收到</cont><indatatime>2014-6-5 17:23:53</indatatime>
</pmess>
</mess>
</messStatus>";
   $xml = simplexml_load_string(utf8_encode($re));
  if($xml->status=='0')
   {
      foreach ($xml->mess->children() as $value)
     {
           
           $stat['mobile']=(string)$value->sender;
           $stat['content']=utf8_decode((string)$value->cont);
          
           $stat_arr[]=$stat;
    }
   }
  print_r($stat_arr);
 
?>

两种解析方法是不一样的,具体看代码


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM