php 如何解析這樣一個xml檔案?

來源:互聯網
上載者:User
                                        //以上xml內容如何擷取時間等資訊,我試了simplexml_load_string函數,解析失敗。--------------------------------------------------------------------------------還有就是上面是print_r輸出的內容,而var_dump輸出的是這樣的    D:\WWW\demo\demo\order.php:24:string '<?xml version="1.0" encoding="utf-8"?><Order DeliveryNo="PH00127495JP">    <Status>        <State StateDate="2016-06-28 11:37:47" StateMessage="親,您的包裹已入庫完成,祝您海淘愉快!" StateOperator="PH002JP" />        <State StateDate="2016-06-29 12:32:13" StateMessage="親,您的包裹已安排極速轉運!" StateOperator="PH002JP" />        <State Stat'... (length=877)//simplexml_load_string函數直接報錯,說Warning: simplexml_load_string(): Entity: line 1: parser error : Start tag expected, '<' not found in D:\WWW\demo\demo\order.php on line 36跪求大神賜教!!---------------------------------------------------------------------------    這些是php處理的代碼。麻煩大神了。 $delivery = trim($_POST['delivery']);$t = $_POST['t'];$encrypt = $_POST['encrypt'];$Source = trim($delivery.$encrypt.$t);    $Source = strtoupper(md5($Source));    //$Source = trim($_POST['Source']);    //$Source = strtoupper(md5($Source));    $data['delivery'] = $delivery;    $data['t'] = $t;    $data['encrypt'] = $encrypt;    $data['Source'] = $Source;        $url = 'http://www.ipehua.com/IWendaAPI/IGetDeliveryAPI.ashx';    //$xml_content = send_post($url,$data);        $curl = curl_init();        curl_setopt_array($curl, Array(        CURLOPT_URL            => $url,        CURLOPT_RETURNTRANSFER => TRUE,        CURLOPT_ENCODING       => 'UTF-8',        CURLOPT_POSTFIELDS     => $data    ));        $xml_content = curl_exec($curl);    curl_close($curl);

回複內容:

                                        //以上xml內容如何擷取時間等資訊,我試了simplexml_load_string函數,解析失敗。--------------------------------------------------------------------------------還有就是上面是print_r輸出的內容,而var_dump輸出的是這樣的    D:\WWW\demo\demo\order.php:24:string '<?xml version="1.0" encoding="utf-8"?><Order DeliveryNo="PH00127495JP">    <Status>        <State StateDate="2016-06-28 11:37:47" StateMessage="親,您的包裹已入庫完成,祝您海淘愉快!" StateOperator="PH002JP" />        <State StateDate="2016-06-29 12:32:13" StateMessage="親,您的包裹已安排極速轉運!" StateOperator="PH002JP" />        <State Stat'... (length=877)//simplexml_load_string函數直接報錯,說Warning: simplexml_load_string(): Entity: line 1: parser error : Start tag expected, '<' not found in D:\WWW\demo\demo\order.php on line 36跪求大神賜教!!---------------------------------------------------------------------------    這些是php處理的代碼。麻煩大神了。 $delivery = trim($_POST['delivery']);$t = $_POST['t'];$encrypt = $_POST['encrypt'];$Source = trim($delivery.$encrypt.$t);    $Source = strtoupper(md5($Source));    //$Source = trim($_POST['Source']);    //$Source = strtoupper(md5($Source));    $data['delivery'] = $delivery;    $data['t'] = $t;    $data['encrypt'] = $encrypt;    $data['Source'] = $Source;        $url = 'http://www.ipehua.com/IWendaAPI/IGetDeliveryAPI.ashx';    //$xml_content = send_post($url,$data);        $curl = curl_init();        curl_setopt_array($curl, Array(        CURLOPT_URL            => $url,        CURLOPT_RETURNTRANSFER => TRUE,        CURLOPT_ENCODING       => 'UTF-8',        CURLOPT_POSTFIELDS     => $data    ));        $xml_content = curl_exec($curl);    curl_close($curl);

                                        ';$xml = simplexml_load_string($xml);$xml = json_decode(json_encode($xml),TRUE);echo "DeliveryNo=>",$xml['@attributes']['DeliveryNo'],"
";$state = $xml['Status']['State'];foreach ($state as $key => $value) { print_r($value['@attributes']); echo "
";}

PHP 5.6.22 通過。

https://3v4l.org/JZ3UP

$xml_string = '                                        ';libxml_disable_entity_loader(true);$obj = simplexml_load_string($xml_string, 'SimpleXMLElement', LIBXML_NOCDATA);print_r($obj);echo $obj->attributes()->DeliveryNo;

PHP處理XML有幾種方式,DOM、XMLReader/Writer、XSL,建議你用後兩種,DOM相對耗記憶體。

                                        EOF;$xml = simplexml_load_string($a);$json = json_encode($xml);$array = json_decode($json,TRUE);$states = $array['Status']['State'];foreach($states as $state) {    echo $state['@attributes']['StateMessage'],' 操作員:',$state['@attributes']['StateOperator'],',',$state['@attributes']['StateDate'],PHP_EOL;}

輸出如下:

親,您的包裹已入庫完成,祝您海淘愉快! 操作員:PH002JP,2016-06-28 11:37:47親,您的包裹已安排極速轉運! 操作員:PH002JP,2016-06-29 12:32:13親,您的包裹已到達HK分撥中心,等待清關中! 操作員:PH005CN,2016-07-02 09:16:58親,您的包裹已清關完畢! 操作員:PH006CN,2016-07-04 09:32:16
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.