mais je n'arrive pas du tout à extraire les données de mon xml. Je commence par récupérer toutes les balises examen comme ceci
var docXmlPatientFolder= xhr.responseXML;
var itemsExamen = docXmlPatientFolder.getElementsByTagName("examen");
for (var i=0;i<itemsExamen.length;i++)
{
là je bloque
}
Salut, beh apres c'est le meme principe à priori :
var docXmlPatientFolder= xhr.responseXML;
var itemsExamen = docXmlPatientFolder.getElementsByTagName("examen");
for (var i=0;i<itemsExamen.length;i++)
{
var itemStudyInstanceUID1 = itemsExamen[i].getElementsByTagName("Study....");
var itemDateExam = itemsExamen[i].getElementsByTagName("dateExamen");
var itemsSerie = itemsExamen[i].getElementsByTagName("serie");
for(var j=0,l=itemsSerie.length; j<l; j++){
// meme principe pour chaque item de chaque série
}
}
merci pour la réponse mais j'ai un autre soucis. Je récupère bien mon xml et je le vois grâce
alert(xhr.responseText);
mais lorsque récupère ma balise examen
var docXmlPatientFolder= xhr.responseXML;
alert(xhr.responseText);
var itemsExamen = docXmlPatientFolder.getElementsByTagName("examen");
alert(itemsExamen.length);
le alert(itemsExamen.length) me retourne 0 alors que mon xml m'affiche plusieurs examen.
Enfin, j'suis pas sur que ce que je t'ai donné comme exemple soit super super, faudrait plutot utiliser des trucs du genre :
var racine = xml.documentElement;
alert(racine.nodeName);
//root
var racine = xml.documentElement;
var tagnom = racine.getElementsByTagName("nom")
for(var i = 0; i< tagnom.length; i++){
var element = racine.childNodes[i];
alert(element.tagName);
}
var racine = xml.documentElement;
var tagnom = racine.getElementsByTagName("patient");
for(var i = 0; i< tagnom.length; i++){
var element = racine.childNodes[i];
alert(element.tagName);
}
on entre pas dans la boucle puisque tagnom.length vaut 0
au passage, je vois que dans ton xml tu as des espaces dans tes balises < examen> ou </ examen> par exemple, essaye de les enlever, ca peut , p-e poser probleme pour certains navigateurs.
Hmm, à mon avis, c'est ton XML qui n'est pas valide, regarde du coté de la generation dans ton script php, y'a quelque chose qui foire :/
A voir aussi si le xml generé est en accord avec la DTD correspondante..
le problème du xml est résolu c'était juste les espace mais lors que j'entre dans mon premier for de cette fonction
function getPatientFolder(xhr)
{
// initialisation de la variable globale docXmlPatientFolder par le fichier xml demandé au serveur
var docXmlPatientFolder= xhr.responseXML;
alert(xhr.responseText);
var itemsExamen = docXmlPatientFolder.getElementsByTagName("examen");
alert(itemsExamen.length);
for (var i=0;i<itemsExamen.length;i++)
{
var itemStudyInstanceUID = itemsExamen[i].getElementsByTagName("studyInstanceUID");
alert(itemsStudyInstanceUID.item(0).firstChild.data);
var itemDateExam = itemsExamen[i].getElementsByTagName("dateExamen");
var itemsSerie = itemsExamen[i].getElementsByTagName("serie");
var studyInstanceUID=itemsStudyInstanceUID.item(0).firstChild.data;
var dateExam=itemDateExam.item(0).firstChild.data;
for(var j=0; j<itemsSerie.length; j++)
{
var itemsCodeSerie = docXML.getElementsByTagName("code_serie");
var itemsSerieInstanceUID = docXML.getElementsByTagName("serieInstanceUID");
var itemsDescription = docXML.getElementsByTagName("descriptionSerie");
var itemsModalite = docXML.getElementsByTagName("modaliteSerie");
var itemsNbimage= docXML.getElementsByTagName("nbImageSerie");
var itemsSOPInstanceUID = docXML.getElementsByTagName("image");
var codeSerie=itemsCodeSerie.item(0).firstChild.data;
var serieInstanceUID=itemsSerieInstanceUID.item(0).firstChild.data;
var description=itemsDescription.item(0).firstChild.data;
var modalite=itemsModalite.item(0).firstChild.data;
var nbImage=itemsNbimage.item(0).firstChild.data;
sopInstanceUID=new Array();//reinitialisation du tableau mi en variable global important car ce tableau peu avoir une taille différente d'une série à une autre
for (var k=0;k<itemsSOPInstanceUID.length;k++)
{
// récupération de chaque SOPInstanceUID contenu dans les balises images de la série en cours
sopInstanceUID[k]=itemsSOPInstanceUID.item(k).firstChild.data;
}
// instanciation de la classe Serie
serie=new Serie(codeSerie,serieInstanceUID,studyInstanceUID,description, modalite,nbImage,sopInstanceUID );
tabSerie[j]=serie;
}
// instanciation de la classe Examen
examen=new Examen(studyInstanceUID, dateExam, tabSerie);
tabExamen[i]=examen;
}
for (var l=0;l<tabExamen.length;l++)
{
document.getElementById('texte').innerHTML =tabExamen[l].toString();// toString de la classe Examen;
}
alert(tabExamen[0].toString());
}
firebug me fait savoir que (itemsStudyInstanceUID)
n'est pas défini pourtant le xml dit le contraire.
après le nettoyage du xml côté serveur il a juste fallu que je résolve le problème d'orthographe de mes variables qui n'étaient pas toujours écrites pareil.
extraction xml provenant d'un fichier php
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
mais je n'arrive pas du tout à extraire les données de mon xml. Je commence par récupérer toutes les balises examen comme ceci Merci
mais lorsque récupère ma balise examen le alert(itemsExamen.length) me retourne 0 alors que mon xml m'affiche plusieurs examen.
affiche 0. quant à on entre pas dans la boucle puisque tagnom.length vaut 0
m'affiche bien le xml issu du php, par contre firebug me signale une erreur à chaque fois que dans mon xml il y'a un espace exemple entre la date et l'heure
m'affiche bien 2. Je croix que ce sont les espaces dans les données des balises xml qui sont fautif
firebug me fait savoir que (itemsStudyInstanceUID) n'est pas défini pourtant le xml dit le contraire.