Accesso agli elementi <![CDATA[ ... ]]> di un file XML con SimpleXML e PHP

otto9due

Utente Attivo
22 Feb 2014
529
21
28
Ho un rss di un sito web che ha inserito all'interno dell'elemento <![CDATA[ ... ]]> una serie di informazioni, es prezzo di un prodotto, sconto, ecc.

Come faccio ad entrare nel <![CDATA[ ... ]]> e selezionare solamente le informazioni di cui ho bisogno?
E' possibile?

Grazie anticipatamente.
 

otto9due

Utente Attivo
22 Feb 2014
529
21
28
Non avendo avuto risposte, sto tentando di accedere a <![CDATA[ ... ]]> tramite DOM.. Tutto quello che c'è al suo interno è un attributo? E come ci accedo..
Questa ad esempio è l'alberatura di un prodotto amazon, io avrei necessità di accedere ai dati contenuti in <![CDATA[ ... ]]> :
HTML:
<item>
<title>
#1: PlayStation 4 - Controller Dualshock 4 Wireless, Jet Black per PS4
</title>
<guid isPermaLink="false">top-sellers_videogames_videogames_B00BF6D63Q</guid>
<link>
http://www.amazon.it/PlayStation-Controller-Dualshock-Wireless-Black/dp/B00BF6D63Q/ref=pd_zg_rss_ts_vg_videogames_1?ie=UTF8&tag=Inserisci_il_Tuo_ID_Affiliato_Qui
</link>
<pubDate>Mon, 27 Apr 2015 08:00:43 GMT</pubDate>
<description>
<![CDATA[
<div style="float:left;"><a class="url" href="http://www.amazon.it/PlayStation-Controller-Dualshock-Wireless-Black/dp/B00BF6D63Q/ref=pd_zg_rss_ts_vg_videogames_1?ie=UTF8&tag=Inserisci_il_Tuo_ID_Affiliato_Qui"><img src="http://ecx.images-amazon.com/images/I/41U9bvdk5nL._SL160_.jpg" alt="PlayStation 4" border="0" hspace="0" vspace="0" /></a></div><span class="riRssTitle"><a href="http://www.amazon.it/PlayStation-Controller-Dualshock-Wireless-Black/dp/B00BF6D63Q/ref=pd_zg_rss_ts_vg_videogames_1?ie=UTF8&tag=Inserisci_il_Tuo_ID_Affiliato_Qui">PlayStation 4 - Controller Dualshock 4 Wireless, Jet Black per PS4</a></span> <br /><span class="riRssContributor">di Sony</span> <br /><b>Piattaforma:</b> PlayStation 4<br /> <img src="http://g-ecx.images-amazon.com/images/G/29/detail/stars-4-5._V192038504_.gif" width="64" height="12" border="0" style="margin: 0; padding: 0;"/>(219)<br /><br /><a href="http://www.amazon.it/PlayStation-Controller-Dualshock-Wireless-Black/dp/B00BF6D63Q/ref=pd_zg_rss_ts_vg_videogames_1?ie=UTF8&tag=Inserisci_il_Tuo_ID_Affiliato_Qui">Acquista: </a> <strike>EUR 69,99</strike> <font color="#990000"><b>EUR 52,98</b></font> <br /><a href="http://www.amazon.it/gp/offer-listing/B00BF6D63Q/ref=pd_zg_rss_ts_vg_videogames_1?ie=UTF8&condition=all&tag=Inserisci_il_Tuo_ID_Affiliato_Qui">56 nuovo e usato</a> da <span class="price">EUR 52,98</span><br /><br />(Visita <a href="http://www.amazon.it/gp/bestsellers/videogames/ref=pd_zg_rss_ts_vg_videogames_1?ie=UTF8&tag=Inserisci_il_Tuo_ID_Affiliato_Qui">Bestseller in Videogiochi</a> l'elenco delle informazioni autorevoli sulla classifica attuale di questo prodotto.)
]]>
</description>
</item>
fino a <title> ci sono... Il problema viene dopo..
 
Ultima modifica:

otto9due

Utente Attivo
22 Feb 2014
529
21
28
Con questo codice pare mi parsa qualcosa.. ma non capisco bene cosa.. perchè non trovo tutti i dati che invece dovrebbero esserci nel tag description.. Potete anche testarlo voi basta caricarlo da qualche parte..

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento senza titolo</title>
</head>
<body>

<?php
$html = "";
$url = "http://www.amazon.it/rss/bestsellers/videogames/";
$xml = simplexml_load_file($url);

foreach($xml->channel->item as $articolo) {
	
	$ns = $articolo->getNamespaces(true);
	$dc = $articolo->children($ns['dc']);
	
	$title = $articolo->title;
	$link = $articolo->link;
	$descriptions = $articolo->description;
	$pubDate = $articolo->pubDate;
	$creatore = $dc->creator;
	
	$desc_conts = $descriptions->xpath('//child::text()');
	
		foreach($desc_conts as $desc_cont) {
			
			$test = $desc_cont->xpath('//child::text()[1]');
			var_dump($test);
			die();
					
		}
			
			
				$html .= "<a href='$link'><h3>$title</h3></a>";
				$html .= "$descriptions";
				$html .= "Scritto da: $creatore";
				$html .= "<br />$pubDate<hr />";
				$html .= "<br />$prezzop<hr />";
				$html .= "<br />$test<hr />";
			
		
}
echo $html;
?>
</body>
</html>
Cosa sta parsando??? Dove sbaglio??
P.S. non badate ad alcuni tag in più es: creator perchè mi servivano per un altro xml :p
 
Ultima modifica: