Parsing Flux RSS
achoura
Messages postés
36
Statut
Membre
-
avion-f16 Messages postés 20368 Date d'inscription Statut Contributeur Dernière intervention -
avion-f16 Messages postés 20368 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai utiliser LastRss (class php : http://lastrss.oslab.net/) pour parser un flux rss. le block xml a parser contient une tag <title>, une <description> voici un exemple :
everything tourne à merveille sauf la balise contenant la date !!?? ici la balise est <dc:date>. le parser n'a pas accepté <date> ni <dc:date> {on remarque le namespace dans la balise date :voir l'exemple}
comment je fais pour pouvoir récupérer la date afin de l'afficher avec les autres données récupéres??
merci pour votre aide.
cordialement Achoura ;)
j'ai utiliser LastRss (class php : http://lastrss.oslab.net/) pour parser un flux rss. le block xml a parser contient une tag <title>, une <description> voici un exemple :
<item rdf:about="https://nvd.nist.gov/vuln/detail/CVE-2010-1052"> <title>CVE-2010-1052</title> <link>https://nvd.nist.gov/vuln/detail/CVE-2010-1052 <description>Multiple cross-site scripting (XSS) vulnerabilities in index.php in AudiStat 1.3 allow remote attackers to inject arbitrary web script or HTML via the (1) year and (2) mday parameters. NOTE: the provenance of this information is unknown; the details are obtained solely from third party information. </description> <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2010-03-22</dc:date> </item>
everything tourne à merveille sauf la balise contenant la date !!?? ici la balise est <dc:date>. le parser n'a pas accepté <date> ni <dc:date> {on remarque le namespace dans la balise date :voir l'exemple}
comment je fais pour pouvoir récupérer la date afin de l'afficher avec les autres données récupéres??
merci pour votre aide.
cordialement Achoura ;)
A voir également:
- Parsing Flux RSS
- Tiny tiny rss - Télécharger - Flux RSS
- Capture flux - Télécharger - TV & Vidéo
- Rss owl - Télécharger - Flux RSS
- Enregistrer flux audio pc - Guide
- Gestion des stocks de motos et flux de données de publication - Forum Programmation
9 réponses
Perso je ne vois pas trop l'intérêt de ces classes quand elles ne servent qu'à ça.
DOM permet de le faire aussi facilement.
DOM permet de le faire aussi facilement.
<?php
$dom = new DOMDocument('1.0','utf-8');
$dom->load('flux.xml');
$items = $dom->getElementsByTagName('channel')->item(0)->getElementsByTagName('item');
foreach($items as $item) {
$titre = $item->getElementsByTagName('title')->item(0)->nodeValue;
$date = $item->getElementsByTagNameNS('http://purl.org/dc/elements/1.1/','date')->item(0)->nodeValue;
$description = $item->getElementsByTagName('description')->item(0)->nodeValue;
echo '<h3>'.$titre.' ('.$date.')</h3>';
echo $description;
echo '<hr />';
}
?>
bonjour, merci pour votre aide. c'est trés gentil ;)
sauf que votre code ne marche pas,,, peut être c'est ma faute j'ai oublié de mentionner que les données que je veut parser existe dans un feed RSS
https://nvd.nist.gov/download/nvd-rss.xml . voici le lien du fichier xml,,, j'ai essaié de changer $dom-load(url),,loadXML(url) ,, mais sans résultats :(
svp vous pouvez tester avec le lien du feed rss : http://nvd.nist.gov/download/nvd-rss.xm
merci encore une fois
@bientôt
sauf que votre code ne marche pas,,, peut être c'est ma faute j'ai oublié de mentionner que les données que je veut parser existe dans un feed RSS
https://nvd.nist.gov/download/nvd-rss.xml . voici le lien du fichier xml,,, j'ai essaié de changer $dom-load(url),,loadXML(url) ,, mais sans résultats :(
svp vous pouvez tester avec le lien du feed rss : http://nvd.nist.gov/download/nvd-rss.xm
merci encore une fois
@bientôt
<?php
$url = 'http://nvd.nist.gov/download/nvd-rss.xml';
$xml = file_get_contents($url);
$dom = new DOMDocument('1.0','utf-8');
$dom->loadXML($xml);
$items = $dom->getElementsByTagName('channel')->item(0)->getElementsByTagName('item');
foreach($items as $item) {
$titre = $item->getElementsByTagName('title')->item(0)->nodeValue;
$date = $item->getElementsByTagNameNS('http://purl.org/dc/elements/1.1/','date')->item(0)->nodeValue;
$description = $item->getElementsByTagName('description')->item(0)->nodeValue;
echo '<h3>'.$titre.' ('.$date.')</h3>';
echo $description;
echo '<hr />';
}
?>Avec beaucoup de chance ton hébergeur acceptera la fonction file_get_contents.
Si pas : https://www.php.net/curl
je m'excuse pour le dérangement :(
ça marche pas non plus, j'ai tester avec zendServer et Apache.
il est clair que le contenu du fichier xml est trop grand, c'est pourkoi j'ai utilisé au début une classe (lastRss) pour configurer combien de flux lire à la fois et la taille du cache à mettre.
merci koméme ;)
ça marche pas non plus, j'ai tester avec zendServer et Apache.
il est clair que le contenu du fichier xml est trop grand, c'est pourkoi j'ai utilisé au début une classe (lastRss) pour configurer combien de flux lire à la fois et la taille du cache à mettre.
merci koméme ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question<?php
$url = 'http://nvd.nist.gov/download/nvd-rss.xml';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$xml = curl_exec($curl);
$dom = new DOMDocument('1.0','utf-8');
$dom->loadXML($xml);
$rdf = $dom->firstChild;
$items = $rdf->getElementsByTagName('item');
$limite = 5;
$i = 0;
foreach($items as $item) {
if($i < $limite) { $i++;
$titre = $item->getElementsByTagName('title')->item(0)->nodeValue;
$date = $item->getElementsByTagNameNS('http://purl.org/dc/elements/1.1/','date')->item(0)->nodeValue;
$description = $item->getElementsByTagName('description')->item(0)->nodeValue;
echo '<h3>'.$titre.' ('.$date.')</h3>';
echo $description;
echo '<hr />';
}
}
?>
Veuillez svp vérifier votre code avant de le poster, ou citer les éventuelles problème ou manip à faire :(
VOTRE CODE NE MARCHE PAS.
merci merci merci mais c peut erroner autres gents, alors please ne poster plus avant de tester.
dsl d'être impoli, mais franchement j'ai raison :(
VOTRE CODE NE MARCHE PAS.
merci merci merci mais c peut erroner autres gents, alors please ne poster plus avant de tester.
dsl d'être impoli, mais franchement j'ai raison :(
Ben moi aussi j'ai raison puisque mon code fonctionne !
Même mon précédant fonctionne !
Et si ton XML était réellement un RSS, mon tout premier code aurait aussi fonctionnait !
Même mon précédant fonctionne !
Et si ton XML était réellement un RSS, mon tout premier code aurait aussi fonctionnait !
bonjour,
et même quand j'ai activé curl dans php.ini et j'ai rédemarrer le service wampapache, j'ai le message suivant:
peut être c mon serveur qui ne marche pas,, donc voila le message d'erreur.
((peut être je dois activer qqe chose d'abord en php !!!))
maybe you have some answer.
merci
Fatal error: Call to undefined function curl_init() in C:\wamp\www\ansiWebApp\lire_flux.php on line 3
et même quand j'ai activé curl dans php.ini et j'ai rédemarrer le service wampapache, j'ai le message suivant:
Warning: DOMDocument::loadXML() [domdocument.loadxml]: Empty string supplied as input in C:\wamp\www\ansiWebApp\lire_flux.php on line 9 Fatal error: Call to a member function getElementsByTagName() on a non-object in C:\wamp\www\ansiWebApp\lire_flux.php on line 12
peut être c mon serveur qui ne marche pas,, donc voila le message d'erreur.
((peut être je dois activer qqe chose d'abord en php !!!))
maybe you have some answer.
merci