Parser xml et enregistrement dans base sql

Fermé
zeitoun69 Messages postés 57 Date d'inscription vendredi 20 juillet 2007 Statut Membre Dernière intervention 27 juin 2013 - 17 juil. 2010 à 20:09
zeitoun69 Messages postés 57 Date d'inscription vendredi 20 juillet 2007 Statut Membre Dernière intervention 27 juin 2013 - 21 août 2010 à 14:48
Bonjour,

j'aun un fichier XML sous la forme : <?xml version="1.0" encoding="UTF-8"?>
<INNVisionWebUpdate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ivschema.xsd">
<MAJDispo date="2010-07-01">
<Dispo>
<CompteDispo Nb_loge="1" Type_Data="Log">item 00</CompteDispo>
<CompteDispo Nb_loge="1" Type_Data="Log">item 01</CompteDispo>
<CompteDispo Nb_loge="0" Type_Data="Log">item 02</CompteDispo>
<CompteDispo Nb_loge="1" Type_Data="Log">item 03</CompteDispo>
<CompteDispo Nb_loge="0" Type_Data="Log">item 04</CompteDispo>
<CompteDispo Nb_loge="0" Type_Data="Log">item 07</CompteDispo>
</Dispo>
</MAJDispo>
<MAJDispo date="2010-07-02">
<Dispo>
<CompteDispo Nb_loge="1" Type_Data="Log">item 00</CompteDispo>
<CompteDispo Nb_loge="1" Type_Data="Log">item 01</CompteDispo>
<CompteDispo Nb_loge="0" Type_Data="Log">item 03</CompteDispo>
<CompteDispo Nb_loge="1" Type_Data="Log">item 05</CompteDispo>
<CompteDispo Nb_loge="0" Type_Data="Log">item 06</CompteDispo>
<CompteDispo Nb_loge="0" Type_Data="Log">item 08</CompteDispo>
</Dispo>
</MAJDispo>
</INNVisionWebUpdate>

et il faut que j'enregistre ces infos dans une base sql ou chaque enregistrement à un champ ID egal à Item XX puis N champs pour chaque jour du calendrier qui correspond à la valeur de MAJDispo date et la valeur de ce champ doit prendre la valeur de "CompteDispo Nb_loge" qui correspond à l'item XX

j'espere avoir été clair
merci d'avance

j'aideja fait plusieurs essais mais sans résultat probants ...



1 réponse

zeitoun69 Messages postés 57 Date d'inscription vendredi 20 juillet 2007 Statut Membre Dernière intervention 27 juin 2013 5
21 août 2010 à 14:48
j'ai fais évoluer ma demande je ne cherche plus a enregistrer dans une base mais a afficher dans un tableau

j'ai réussi a former le tableau mais les données sont celles de la premiere ligne, voici mon code, je suis débutant soiyez ingulgent sur la propreté ..

// début du code
function submitForm() {
var xhr_object = null;

if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}

xhr_object.open("GET", "dispoMAJ-2010.xml", true);

xhr_object.onreadystatechange = function() {
if(xhr_object.readyState == 4) {
var xml =xhr_object.responseXML;
var racine = xml.documentElement;

var result="";
document.write( "<table width='100%' border='1'> <tr> <td></td>" );
// on teste d'abord le nmbre de jours présents dans la base
for(var i = 0; i<racine.childNodes.length; i++){
if (xml.getElementsByTagName("MAJDispo")[i])
document.write("<td width ='200'>"+xml.getElementsByTagName("MAJDispo")[i].getAttribute("date")+"</td>");
}
document.write( "</tr> <tr> " );
getFils(racine);
document.write( "</tr><table>" );
}


function getFils(xml){
if (xml.nodeName =="CompteDispo")
{
for(var i = 0; i<xml.childNodes.length; i++){
var element = xml.childNodes[i];
// On affiche le nom de l'élément CompteDispo
document.write( "<td><b>"+element.nodeValue+"</b> </td>" );
}
for(var k = 0; k<racine.childNodes.length; k++){
//s'il existe une date alors on affiche la donnée
if (racine.getElementsByTagName("MAJDispo")[k])
document.write("<td>"+racine.getElementsByTagName("MAJDispo")[k].getElementsByTagName("CompteDispo")[i].getAttribute("Nb_loge")+"</td>");

}
}

for(var i = 1; i<xml.childNodes.length; i++){
var element = xml.childNodes[i];
var nom = element.nodeName;
if(element.nodeType==1)
{document.write( "<tr>" );
getFils(element);
document.write( "</tr>" );}


}
}


}

xhr_object.send(null);

}
/*fin du code*/

Merci d'avance de votre aide
0