1
Sviluppo / Re:Parsing XML non standard con JSimpleXML
« il: 04 Feb 2014, 15:09:30 »
Grazie simone83, sei stato gentilissimo!
Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.
<?php
defined('_JEXEC') or die('Restricted access');
jimport( 'joomla.http.factory' );
jimport( 'joomla.http.http' );
jimport( 'joomla.http.response' );
jimport( 'joomla.utilities.xmlelement' );
jimport( 'joomla.utilities.simplexml' );
class modHelloWorldHelper
{
public static function getHello( $params )
{
//URL a cui mando in post la stringa 'xyz'
$url = "http://www.miaurl.it/index.php?input=xyz";
//istanza dell'oggetto JHttpFactory per l'invio in post verso l'URL indicata sopra
$http = JHttpFactory::getHttp();
//invio in post
$resp = $http->post($url);
//leggo la response ottenuta (notare che ciò che ottengo è una stringa della stessa identica forma dell'XML che ho postato precedentemente nell'esempio)
$data = htmlspecialchars($resp->body);
//istanzio un oggetto JSimpleXML necessario al parsing della stringa $data
$xml = new JSimpleXML();
//carico con l'apposito metodo della classe JSimpleXML la stringa $data (loadString ritorna un oggetto JSimpleXMLElement se tutto va bene)
$xml->loadString($data);
//stampo a video il contenuto di $xml
return print_r($xml);
}
}
?>
JSimpleXML Object ( [_parser:JSimpleXML:private] => Resource id #108 [document] => [_stack:JSimpleXML:private] => Array ( ) [_errors:protected] => Array ( ) ) 1
XML Parsing Error at 1:1. Error 4: Not well-formed (invalid token)
<data result="ok">
<items>
<item id="1" des="xyz" idmod="12" iddesmod="prova1" ver="2" desver="prova2">
</item>
<item id="2" des="xyz" idmod="13" iddesmod="prova3" ver="3" desver="prova4">
</item>
</items>
</data>
XML Parsing Error at 1:1. Error 4: Not well-formed (invalid token)
defined('_JEXEC') or die('Restricted access');
jimport( 'joomla.http.factory' );
jimport( 'joomla.http.http' );
jimport( 'joomla.http.response' );
class modHelloWorldHelper
{
public static function getHello( $params )
{
$url = "http://www.sitoditest.it/index.php?prova=xyz";
$http = JHttpFactory::getHttp();
//invio l'URL in post
$resp = $http->post($url);
//siccome il body della response era formattato con XML, ho usato questo metodo per estrarre la stringa
return htmlspecialchars($resp->body);
}
}
|