Invoco el método PHP cURL en un servidor y la respuesta es de tipo XML. cURL está guardando la salida (después de eliminar las etiquetas) en una variable de tipo escalar. ¿Hay alguna manera de almacenarlo en un objeto/hash/array para que sea fácil de analizar?PHP cURL, extraer una respuesta XML
Respuesta
<?php
function download_page($path){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$path);
curl_setopt($ch, CURLOPT_FAILONERROR,1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
$retValue = curl_exec($ch);
curl_close($ch);
return $retValue;
}
$sXML = download_page('http://alanstorm.com/atom');
$oXML = new SimpleXMLElement($sXML);
foreach($oXML->entry as $oEntry){
echo $oEntry->title . "\n";
}
no, CURL no tiene nada con el análisis XML, no sabe nada sobre el contenido devuelto. sirve como proxy para obtener contenido. depende de ti qué hacer con eso.
uso de JSON si es posible (y json_decode) - es más fácil trabajar con él, si no es posible, utilizar cualquier librería XML para parsin como domxml: http://php.net/domxml
Estoy de acuerdo con eso. Pero, ¿por qué no se muestran las etiquetas? Hago un eco. ¿Es por el navegador? – Rakesh
sí, el navegador trata XML como (X) HTML, por lo que si se encuentra> o <, se trata como una etiqueta normal ... – dusoft
Si repite htmlentities (...) verá el XML completo – Greg
Sólo añadir header('Content-type: application/xml');
antes de eco de la Respuesta XML y verá una página XML.
Ejemplo:
<songs>
<song dateplayed="2011-07-24 19:40:26">
<title>I left my heart on Europa</title>
<artist>Ship of Nomads</artist>
</song>
<song dateplayed="2011-07-24 19:27:42">
<title>Oh Ganymede</title>
<artist>Beefachanga</artist>
</song>
<song dateplayed="2011-07-24 19:23:50">
<title>Kallichore</title>
<artist>Jewitt K. Sheppard</artist>
</song>
a continuación:
<?php
$mysongs = simplexml_load_file('songs.xml');
echo $mysongs->song[0]->artist;
?>
de salida en su navegador: nave de los nómadas
créditos: http://blog.teamtreehouse.com/how-to-parse-xml-with-php5
sencillo archivo XML de carga ..
$xml = @simplexml_load_string($retValuet);
$status = (string)$xml->Status;
$operator_trans_id = (string)$xml->OPID;
$trns_id = (string)$xml->TID;
?>
$sXML = download_page('http://alanstorm.com/atom');
// Comment This
// $oXML = new SimpleXMLElement($sXML);
// foreach($oXML->entry as $oEntry){
// echo $oEntry->title . "\n";
// }
// Use json encode
$xml = simplexml_load_string($sXML);
$json = json_encode($xml);
$arr = json_decode($json,true);
print_r($arr);
página_descarga(), ¿en serio? Al menos cuando sugiera una función, adhiérase a las funciones integradas o defina las que está proponiendo. Los principiantes pueden perderse fácilmente. Le sugiero que edite esto y lo reemplace con un simple archivo_get_contents() el menos. – Darthur
- 1. Error PHP cURL: "Respuesta vacía del servidor"
- 2. Cómo obtener una respuesta usando cURL en PHP
- 3. PHP https publicar datos XML con cURL
- 4. Extraer párrafos de API Wikipedia usando PHP cURL
- 5. PHP cURL solo requiere enviar y no esperar la respuesta
- 6. ¿Publica datos y recupera la respuesta usando PHP Curl?
- 7. ¿Cómo recibir solicitudes xml y enviar respuesta xml en php?
- 8. ¿Cómo guardo las cookies de una respuesta a una solicitud de cURL utilizando php?
- 9. Contactos PHP GMAIL Análisis XML con DOMDocument y cURL
- 10. PHP CURL y HTTPS
- 11. ¿Cómo hacer una solicitud de cUrl sin recibir la respuesta?
- 12. solicitud xml-rpc usando curl?
- 13. Cabeceras personalizadas PHP cURL
- 14. PHP cURL HTTP PUT
- 15. Caché usando PHP cURL
- 16. PHP Curl CURLOPT_IPRESOLVE
- 17. CURL con PHP - Muy lento
- 18. Php - Curl de depuración
- 19. PHP Multiple Curl Requests
- 20. php cURL opción silenciosa?
- 21. ¿Cómo eliminar encabezados HTTP de la respuesta CURL?
- 22. Uso de PHP (curl) para extraer datos de JSON (Google Maps API)
- 23. Solicitud de SOAP en PHP con CURL
- 24. reintento de cURL en PHP
- 25. PHP: Simulate XHR using cURL
- 26. PHP PECL_HTTP vs cURL Extensión
- 27. PHP obtener el código de respuesta del encabezado http sin cURL
- 28. Convertir línea de comando cURL a PHP cURL
- 29. ¿Cómo devuelve una respuesta XML personalizada en la respuesta de soapServer?
- 30. PHP Curl con --data bandera?
Podría extenderse sobre lo que entendemos por "después de quitar las etiquetas". –