J'ai actuelement un projet (non profesionnel) de réaliser une application web qui se base sur plusieurs langage et protocoles que sont XUL, PHP, AJAX et XML.
J'ai déjà fait une partie de l'interface avec XUL mais la je suis bloqué sur un problême qui me paraît assez compliqué ^^
Donc voila le problême : j'ai un fichier XML qui est la "copie" d'une BDD (mais c pas la le prob...) Donc je récupère ce XML avec une requete AJAX. Ensuite je voudrais transformer ce fichier XML en tableau sur l'interface de l'utilisateur. Mais la est le problême, je souhaite utiliser un arbre (car pratique, rapide et beau ^^) mais comme je ne voudrais pas utiliser de RDF pour question de portatibilité avec les autres languages, comment transformer ce XML en arbre?
J'essaye actuelement de trouver en utilisant nsITreeView et voila ce que j'ai pour l'instant:
code Javascript/nsITreeView :
Code : Tout sélectionner
var tableauAcheteur = {
rowCount : function() { return getXmlAcheteur().getElementsByTagName('numAcheteur').length; },
getCellText : function(row,column) {
if (column == 'Numéro de l\'acheteur')
return getXmlAcheteur().getElementsByTagName('numAcheteur')[row].firstChild.nodeValue;
else if (column == 'Nom')
return getXmlAcheteur().getElementsByTagName('nom')[row].firstChild.nodeValue;
else if (column == 'Prénom')
return getXmlAcheteur().getElementsByTagName('prenom')[row].firstChild.nodeValue;
else if (column == 'Adresse')
return getXmlAcheteur().getElementsByTagName('adresse')[row].firstChild.nodeValue;
else if (column == 'Code postal')
return getXmlAcheteur().getElementsByTagName('codePostal')[row].firstChild.nodeValue;
else if (column == 'Ville')
return getXmlAcheteur().getElementsByTagName('ville')[row].firstChild.nodeValue;
else if (column == 'Facture (oui/non)') {
if (getXmlAcheteur().getElementsByTagName('facture')[row].firstChild.nodeValue == 0)
return 'non';
else
return 'oui';
} else
return '';
},
setTree: function(treebox){ this.treebox = treebox; },
isContainer: function(row){ return false; },
isSeparator: function(row){ return false; },
isSorted: function(row){ return false; },
getLevel: function(row){ return 0; },
getImageSrc: function(row,col){ return null; },
getRowProperties: function(row,props){},
getCellProperties: function(row,col,props){},
getColumnProperties: function(colid,col,props){}
};
function afficherAcheteur() {
document.getElementById('tableauAcheteur').view = tableauAcheteur ;
}
et voici une partie de mon code XUL :
Code : Tout sélectionner
<hbox id="boiteTableauAcheteur" flex="1">
<tree id="tableauAcheteur">
<treecols>
<treecol label="Numéro de l'acheteur"/>
<treecol label="Nom"/>
<treecol label="Prénom"/>
<treecol label="Adresse"/>
<treecol label="Code postal"/>
<treecol label="Ville"/>
<treecol label="Facture (oui/non)"/>
</treecols>
<treechildren />
</tree>
</hbox>
Code : Tout sélectionner
<?xml version="1.0" encoding="UTF-8"?>
<vente>
<acheteur>
<numAcheteur>1</numAcheteur>
<nom>dgd</nom>
<prenom>sg</prenom>
<adresse>sddg</adresse>
<codePostal>231</codePostal>
<ville>sg</ville>
<facture>1</facture>
</acheteur>
<acheteur>
<numAcheteur>2</numAcheteur>
<nom>ddg</nom>
<prenom>sg</prenom>
<adresse>srg</adresse>
<codePostal>65</codePostal>
<ville>sdff</ville>
<facture>0</facture>
</acheteur>
<acheteur>
<numAcheteur>3</numAcheteur>
<nom>dgd</nom>
<prenom>sg</prenom>
<adresse>sddg</adresse>
<codePostal>231</codePostal>
<ville>sg</ville>
<facture>1</facture>
</acheteur>
</vente>
Merci d'avance pour votre aide,
Inarius