Parser xml et enregistrement dans base sql

zeitoun69 Messages postés 59 Statut Membre -  
zeitoun69 Messages postés 59 Statut Membre -
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

  1. zeitoun69 Messages postés 59 Statut Membre 5
     
    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