Résolu Extraire données XML

Solutions (6)
Tags :
  • Sql
  • Programmation
|
Bonjour,

Je souhaite récupérer un XML de ce genre :

$xml = '<root>';
/*Requête SQL pour récupérer les différents flux RSS */
$rows=requeteSQL("SELECT * FROM UnFlux ORDER BY DateFlux");
/*Boucle pour récupérer tous les flux et les inscrire dans un fichier XML */
while($leflux=mysql_fetch_assoc($rows))
{
$titre=$leflux["TitreFlux"];
$lien=$leflux["LienFlux"];
$description=$leflux["DescriptionFlux"];
$date=$leflux["DateFlux"];
$URLImage=$leflux["URLImageFlux"];
$date2=date("d-m-Y", strtotime($date));

$xml .= '<image>'.$URLImage.'</image>';
$xml .= ' ';
$xml .= '<date>'.$date2.'</date>';
$xml .= ' : '; */
$xml .= '<title>'.$titre.'</title>';
$xml .= ' ';
$xml .= '<description>'.$description.'</description>';
$xml .= ' ';
$xml .= '<link>'.$lien.'</link>';
$xml .= ' - ';
}
$xml .= '</root>';

Je voudrais récupérer $URLImage, $date2, $titre, $description et $link et les afficher dans un <div>. Pour cela, j'utilise :
var root_node = xmlDoc.getElementsByTagName('root')[0];
document.getElementById("bloc").innerHTML = root_node.firstChild.data;
Sauf que même en changeant "root", [0], firstChild, etc..., je ne parviens pas à récupérer les informations contenues dans les balises entre <root> et </root> pour les afficher.
Si j'enlève toutes les balises image, titre, etc..., les informations s'affichent correctement dans le <div>.

Pouvez-vous m'aider ?

Merci d'avance.

Contenus similaires
Meilleure solution
partage
, Modérateur |
salut,

Le soucis c'est que tu n'as pas de balise XML qui sépare chaque élément distinct.

En clair, ta requête va donner quelque chose comme ça :
  1. <root>
  2. <image>img</image>
  3. <date>date</date>
  4. <title>title</title>
  5. <description>desc</description>
  6. <link>link</link>
  7. <image>img2</image>
  8. <date>date2</date>
  9. <title>title2</title>
  10. <description>desc2</description>
  11. <link>link2</link>
  12. </root>


Il faudrait que tu mettes chaque élément dans une balise distinct, exemple :
  1. <root>
  2. <item>
  3. <image>img</image>
  4. <date>date</date>
  5. <title>title</title>
  6. <description>desc</description>
  7. <link>link</link>
  8. </item>
  9. <item>
  10. <image>img2</image>
  11. <date>date2</date>
  12. <title>title2</title>
  13. <description>desc2</description>
  14. <link>link2</link>
  15. </item>
  16. </root>


Ensuite, il ne faut pas mettre de ":", "-" au milieu d'un contenu XML !
  • Commenter cette solution |
Score
0
òh
òi
|
Sujet résolu ! Désolée de pas l'avoir fait avant !
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Si ton problème est résolu, je t'invite à cliquer sur l'icône en forme de coupe () sur la réponse qui correspond le mieux à ta question.
Cela permettra d'ajouter un [Résolu] automatiquement à ton sujet.
  • Commenter cette réponse |
Score
0
òh
òi
|
J'ai réussi à faire ce que je voulais.
Merci d'avoir répondu !
  • Commenter cette réponse |
Score
0
òh
òi
, Ex-AdMiN |
Pour créer de bon flux XML, syntaxiquement correct, XMLWriter est inclus dans PHP. C'est de la programmation orienté objet mais c'est beaucoup plus propre que ton code qui sortira très rarement un flux correct.
  • Commenter cette réponse |
Score
0
òh
òi
|
Merci de ta réponse, OmaR.
Je vais suivre tes conseils.
Merci
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS