用xml模式解析XML响应

时间:2019-04-12 10:13:18

标签: php xml xsd xml-parsing

修改 如果有人想复制并尝试使用下面给出的代码,它将在localhost中按原样运行。给定的凭据有效。

我有一个php代码,它从API服务请求数据。发送XML请求,并作为响应接收XML数据。我已将Respose数据存储在变量$output中。执行echo $output时,将打印XML响应中的详细信息。但是现在我需要解析此响应并将所需的数据存储在变量中。例如:我需要保存$customer_id =中的<customer_id>12345</customer_id>值。我对谷歌进行了彻底的搜索,并尝试了不同开发人员提供的所有代码段,但没有用。

我尝试了var_dump(simplexml_load_string($output));,它返回了object(SimpleXMLElement)#1 (0) { }。我什至尝试将XML数据转换为数组。

index.php

    <?php

        $appId ="MFS149250";
        $appPass ="5TEBRPCZ";
        $brokeCode ="ARN-149250";
        $iin = "5011217983";


    $xml_data = '<?xml version="1.0" encoding="UTF-8"?>
                <NMFIIService>
                    <service_request>
                        <appln_id>'.$appId.'</appln_id>
                        <password>'.$appPass.'</password>
                        <broker_code>'.$brokeCode.'</broker_code>
                        <iin>'.$iin.'</iin>
                    </service_request>
                </NMFIIService>';



      $URL = "https://uat.nsenmf.com/NMFIITrxnService/NMFTrxnService/IINDETAILS";
                $ch = curl_init($URL);
                curl_setopt($ch, CURLOPT_MUTE, 1);
                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
                curl_setopt($ch, CURLOPT_POST, 1);
                curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
                curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_data);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                $output = curl_exec($ch);
                //echo "<textarea>".$output."</textarea>";
                echo $output;
                var_dump(simplexml_load_string($output));
                curl_close($ch);
?>

0 个答案:

没有答案