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