XHTML Ajax et RSS
Résolu
Cadavre
Messages postés
13
Date d'inscription
Statut
Membre
Dernière intervention
-
Cadavre Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
Cadavre Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'essaie depuis plusieurs heures de simplement prendre un flux RSS tel que celui du journal LeDevoir disponible à cette adresse "ledevoir.com/rss/ledevoir.xml" et de traiter seulement 2 champs soit Title et Description. Et jusqu'à maintenant si je traite seulement la balise Title tout fonctionne bien. Mais dès que j'essaie de traiter les 2 balises XML qui m'intéressent, alors ma page XHTML n'affiche plus rien ! Voici mon code XHTML en question:
Test.xhtml
<?xml version="1.0" encoding="ISO-8859-1" ?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>LeDevoir</title>
<script language="JavaScript">
function chargeDocument(URI) {
try {
xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", URI,true);
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4) {
affiche(xmlhttp.responseXML);
}
}
xmlhttp.send(null);
} catch(o) {alert(o);}
}
function affiche(doc) {
elementol = document.createElement("ol");
var allitems = doc.getElementsByTagName("item");
for (var i=0; i < allitems.length; i++) {
var itemElm = allitems[i];
var titreElm = itemElm.getElementsByTagName("title").item(0);
var titleText = titleElm.firstChild.nodeValue;
var DescripElm = itemElm.getElementsByTagName("description").item(0);
var DescripText = DescripElm.firstChild.nodeValue;
elementli = document.createElement("li");
var txtNode = document.createTextNode(titleText);
elementli.appendChild(document.createTextNode(txtNode));
elementol.appendChild(elementli);
body = document.getElementsByTagName("body").item(0);
body.appendChild(elementol);
}
}
</script>
</head>
<body>
<ul>
<li><a href="javascript:chargeDocument('ledevoir.xml');">
Récupère et affiche le titre et la description.</a></li>
</ul>
</body>
</html>
Comme vous pouvez le voir, je ne cherche pas à faire quoi que ce soit de compliquer. Je veux simplement identifier la valeur de 2 balises pour chaque item et en afficher leur contenu respectif. Alors, toute aide serait vraiment appréciée!!
j'essaie depuis plusieurs heures de simplement prendre un flux RSS tel que celui du journal LeDevoir disponible à cette adresse "ledevoir.com/rss/ledevoir.xml" et de traiter seulement 2 champs soit Title et Description. Et jusqu'à maintenant si je traite seulement la balise Title tout fonctionne bien. Mais dès que j'essaie de traiter les 2 balises XML qui m'intéressent, alors ma page XHTML n'affiche plus rien ! Voici mon code XHTML en question:
Test.xhtml
<?xml version="1.0" encoding="ISO-8859-1" ?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>LeDevoir</title>
<script language="JavaScript">
function chargeDocument(URI) {
try {
xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", URI,true);
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4) {
affiche(xmlhttp.responseXML);
}
}
xmlhttp.send(null);
} catch(o) {alert(o);}
}
function affiche(doc) {
elementol = document.createElement("ol");
var allitems = doc.getElementsByTagName("item");
for (var i=0; i < allitems.length; i++) {
var itemElm = allitems[i];
var titreElm = itemElm.getElementsByTagName("title").item(0);
var titleText = titleElm.firstChild.nodeValue;
var DescripElm = itemElm.getElementsByTagName("description").item(0);
var DescripText = DescripElm.firstChild.nodeValue;
elementli = document.createElement("li");
var txtNode = document.createTextNode(titleText);
elementli.appendChild(document.createTextNode(txtNode));
elementol.appendChild(elementli);
body = document.getElementsByTagName("body").item(0);
body.appendChild(elementol);
}
}
</script>
</head>
<body>
<ul>
<li><a href="javascript:chargeDocument('ledevoir.xml');">
Récupère et affiche le titre et la description.</a></li>
</ul>
</body>
</html>
Comme vous pouvez le voir, je ne cherche pas à faire quoi que ce soit de compliquer. Je veux simplement identifier la valeur de 2 balises pour chaque item et en afficher leur contenu respectif. Alors, toute aide serait vraiment appréciée!!
A voir également:
- XHTML Ajax et RSS
- Tiny tiny rss - Télécharger - Flux RSS
- Rss owl - Télécharger - Flux RSS
- Rss bandit - Télécharger - Web & Internet
- Rss to mp3 - Guide
- Alinea en xhtml ✓ - Forum HTML
1 réponse
J'ai trouvé une solution. La voici en quelques lignes:
[...]
var items_count=doc.getElementsByTagName('item').length;
var title=new Array(), description=new Array(), link = new Array();
[...]
for (var i=0; i < items_count; i++) {
if(doc.getElementsByTagName('item')[i].getElementsByTagName('title').length==1)
title[i]=doc.getElementsByTagName('item')[i].getElementsByTagName('title')[0];
if(doc.getElementsByTagName('item')[i].getElementsByTagName('description').length==1)
description[i]=doc.getElementsByTagName('item')[i].getElementsByTagName('description')[0];
}
[...]
for (var i=0; i < items_count; i++) {
var descrip_w, title_w, link_w;
title_w = title[i].firstChild.nodeValue;
descrip_w = description[i].firstChild.nodeValue;
[...]
[...]
var items_count=doc.getElementsByTagName('item').length;
var title=new Array(), description=new Array(), link = new Array();
[...]
for (var i=0; i < items_count; i++) {
if(doc.getElementsByTagName('item')[i].getElementsByTagName('title').length==1)
title[i]=doc.getElementsByTagName('item')[i].getElementsByTagName('title')[0];
if(doc.getElementsByTagName('item')[i].getElementsByTagName('description').length==1)
description[i]=doc.getElementsByTagName('item')[i].getElementsByTagName('description')[0];
}
[...]
for (var i=0; i < items_count; i++) {
var descrip_w, title_w, link_w;
title_w = title[i].firstChild.nodeValue;
descrip_w = description[i].firstChild.nodeValue;
[...]