【发布时间】:2017-01-10 16:54:05
【问题描述】:
我有这个 xml 响应,我想将其转换为关联数组,我尝试了很多解决方案,但都没有成功。
<EXPEDICIONES NUM="1">
<EXPEDICION>
<PORTES>Pagados</PORTES>
<DESCRIPCION_CLIENTE_INGLES>ENTREGA EFECTUADA</DESCRIPCION_CLIENTE_INGLES>
<CARACTER_TEL>-</CARACTER_TEL>
<PESO>2.6</PESO>
<ENTREGA_SABADO>N</ENTREGA_SABADO>
<DEBIDO>0</DEBIDO>
<VALOR_TEL>-</VALOR_TEL>
<RECOGIDA_SABADO>N</RECOGIDA_SABADO>
<REMITE_PISO>-</REMITE_PISO>
<REMITE_PROVINCIA>LISBOA</REMITE_PROVINCIA>
<DESTINA_TIPO_NUM>IN</DESTINA_TIPO_NUM>
<DESTINA_PUERTA>-</DESTINA_PUERTA>
<PAGADO>3.38</PAGADO>
<EXISTEN_APUNTES></EXISTEN_APUNTES>
<DESTINA_PISO>-</DESTINA_PISO>
<DESTINA_CCC_ID>-</DESTINA_CCC_ID>
<FAMILIA>715338323</FAMILIA>
</EXPEDICION>
</EXPEDICIONES>
这是我正在生成的代码
$soap_request = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:con="http://consultaExpediciones.servicios.webseur">
<soapenv:Header/>
<soapenv:Body>
<con:consultaExpedicionesStr>
<con:in0>S</con:in0>
<con:in1></con:in1>
<con:in2></con:in2>
<con:in3></con:in3>
<con:in4>14097-83</con:in4>
<con:in5>03-01-2016</con:in5>
<con:in6>05-12-2017</con:in6>
<con:in7></con:in7>
<con:in8></con:in8>
<con:in9></con:in9>
<con:in10>83080189516234</con:in10>
<con:in11>0</con:in11>
<con:in12>velvet83</con:in12>
<con:in13>velvet83</con:in13>
<con:in14>N</con:in14>
</con:consultaExpedicionesStr>
</soapenv:Body>
</soapenv:Envelope>>';
$header = array(
"Content-type: text/xml;charset=\"utf-8\"",
"Accept: text/xml",
"Cache-Control: no-cache",
"Pragma: no-cache",
"Content-length: " . strlen($soap_request),
);
$soap_do = curl_init();
curl_setopt($soap_do, CURLOPT_URL, "https://ws.seur.com/webseur/services/WSConsultaExpediciones");
curl_setopt($soap_do, CURLOPT_RETURNTRANSFER, true);
curl_setopt($soap_do, CURLOPT_POST, true);
curl_setopt($soap_do, CURLOPT_POSTFIELDS, $soap_request);
curl_setopt($soap_do, CURLOPT_HTTPHEADER, $header);
$result = (curl_exec($soap_do));
echo "<pre>";
print_r($result);
echo "</pre>";
die();
我尝试过使用 SimpleXMLElement 类然后对 xml 进行 json 编码的解决方案,但没有成功。
$xml = new SimpleXMLElement($xmlString);
$json = json_encode($xml);
$array = json_decode($json,TRUE);
【问题讨论】:
-
所以你尝试了“许多解决方案”......请问这些是什么?因为我看不到您在问题中所做的任何尝试...
-
关于 xml2array 有很多问题,我已经尝试了其中的大部分。也许我遇到了问题,我使用 curl 从肥皂调用中获得了 xml 响应。我尝试了两种已回答的解决方案,但都没有奏效。
-
“没有用”没有帮助。发布您尝试过的代码,并解释您认为到底是什么错误。否则,这看起来就像您只是在寻找其他人为您工作......
标签: php arrays xml xml-parsing