Trucsweb.com

Forum de discussion

 Forum « Flash et Shockwave » (archives)

problème de Parser Xml

Envoyé: 23 janvier 2004, 15h52 par blues


tout dabors voila le Xml

<?xml version="1.0" encoding="iso-8859-1" ?>
<SOMMAIRE nom="Menu">
<CHAPTITRE nom="HOME" content = "Intro.txt">
<CHAPTITRE nom="PRODUITS" content = "Intro_Produits.txt">
<SUB-CHAPTITRE nom="Vente" content = "Intro_Vente.txt" >
<ARTICLE nom="Vente_Page 1" content = "VentePage1.txt" >
<ARTICLE nom="Vente_Page 2" content = "VentePage2.txt" >
</SUB-CHAPTITRE>
<SUB-CHAPTITRE nom="Conseil - Consultence" content = "Conseil.txt">
<SUB-CHAPTITRE nom="Production" content = "Production.txt">
<SUB-CHAPTITRE nom="Instalation" content = "Instalation.txt">
<SUB-CHAPTITRE nom="Entretient" content = "Entretient.txt">
<SUB-CHAPTITRE nom="Formation" content = "Formation.txt">
</CHAPTITRE>
<CHAPTITRE nom="SERVICES" content = "Intro_services.txt">
<SUB-CHAPTITRE nom="Consultence" content = "Consultence.txt" >
<SUB-CHAPTITRE nom="Conduit" content = "Conduit.txt" >
<SUB-CHAPTITRE nom="Pompe Incendie" content = "IntroPompe.txt">
<SUB-CHAPTITRE nom="Reservoires Eau" content = "Reservoires.txt">
<SUB-CHAPTITRE nom="Sprinkler" content = "Sprinkler.txt">
<SUB-CHAPTITRE nom="Protecection" content = "Intro_Protection.txt">
<ARTICLE nom="Traditionel" content = "Traditionnelle.txt" >
<ARTICLE nom="Spéciale" content = "Spléciale.txt" >
<ARTICLE nom="Résidentiel" content = "Résidentiel.txt" >
</SUB-CHAPTITRE>
</CHAPTITRE>
<CHAPTITRE nom="PARTENAIRES" content = "Intro_Partenaire.txt">
<SUB-CHAPTITRE nom="Viking1" content = "Viking.txt" >
<SUB-CHAPTITRE nom="Bosec" content = "Bosec.txt" >
<SUB-CHAPTITRE nom="ISO 9100" content = "Iso.txt" >
</CHAPTITRE>
<CHAPTITRE nom="CONTACT" content = "Intro_Contact.txt">
<SUB-CHAPTITRE nom="E-Mail" content = "" >
<SUB-CHAPTITRE nom="INFO" content = "Info.txt">
<SUB-CHAPTITRE nom="Formulaire Info" content = "Formulaire.txt" >
<SUB-CHAPTITRE nom="Plant d'accés" content = "PLan.txt" >
</CHAPTITRE>
</SOMMAIRE>


les listes utiles
Lt_Chap = new Array();
// liste des chapitres
Lt_Content_Chap = new Array();
// liste du contenu des chapitres
Lt_NbSub = new Array([],[]);
// liste du nombre de sous-chapitres par chapitre
Lt_Sub = new Array([],[]);
// liste des sous-chapitre
Lt_Content_Sub = new Array([],[]);
// liste du contenu des sous-chapitre
Lt_NbArt = new Array([],[],[]);
// liste du nombre d'articles par sous-chapitres
Lt_Art = new Array([],[],[]);
// liste des articles
Lt_Content_Art = new Array([],[],[]);
// liste du contenu des articles
////

la turbine pour parser l'Xml

function createsom(tracer) {
nbChap = xmldoc.firstChild.childNodes.length;
Lt_Content_Sub.twoDim0(nbChap, 0);
Lt_Sub.twoDim0(nbChap, 0);
//Lt_NbArt.twoDim0(nbChap, 0);
//Lt_Art.twoDim0(nbChap, 0);
//Lt_Content_Art.twoDim0(nbChap, 0);
for (i=0; i<nbChap; i++) {
IDChap = xmldoc.firstChild.childNodes[i].attributes.nom;
Lt_Chap[i] = IDChap;
Chap = xmldoc.firstChild.childNodes[i].attributes.content;
if (tracer == "Total") {
trace("Chapitre "+(i+1)+" : "+IDChap);
}
Lt_Content_Chap[i] = Chap;
//
nbSub = xmldoc.firstChild.childNodes[i].childNodes.length;
Lt_NbSub[i] = nbSub;
Lt_Content_Sub[i].twoDim(nbSub);
Lt_Sub[i].twoDim(nbSub);
Lt_Art[i].twoDim0(nbSub, 0);
Lt_Content_Art[i].twoDim0(nbSub, 0);

//
if (Lt_NbSub[i] == 0) {
Lt_Sub[i][0] = "chapitre n°"+(i+1)+" : vide";
Lt_Content_Sub[i][0] = "none";
Lt_NbArt[i][0] =0;
Lt_Art[i][0] = "NoNe";
Lt_Content_Art[i][0] = "NONE";
if (tracer == "Total") {
trace("\t\t-- il n'y a pas se sous-capitre pour ce chapitre n°"+(i+1));
}
} else {
for (j=0; j<nbSub; j++) {
IDSub = xmldoc.firstChild.childNodes[i].childNodes[j].attributes.nom;
Lt_Sub[i][j] = IDSub;
Sub = xmldoc.firstChild.childNodes[i].childNodes[j].attributes.content;
if (tracer=="Total") {
trace("\tSous Chapitre "+(i+1)+"."+(j+1)+" : "+Sub);
}
Lt_Content_Sub[i][j] = Sub;
//
NbArt = xmldoc.firstChild.childNodes[i].childNodes[j].childNodes.length;
Lt_NbArt[i][j] = nbArt;
//

Lt_Art[i][j].twoDim(nbArt);
Lt_Content_Art[i][j].twoDim(nbArt);

//
//
if (Lt_NbArt[i][j] == 0) {
Lt_Art[i][j][0] = "Sous Chapitre n°"+(i+1)+"."+(j+1)+" : vide";
Lt_Content_Art[i][j][0] = "none";
if (tracer == "Total") {
trace("\t\t\t** il n'y a pas d'article pour ce sous chapitre n°"+(j+1));
}
} else {
for (k=0; k<nbArt; k++) {
IDArt = xmldoc.firstChild.childNodes[i].childNodes[j].childNodes[k].attributes.nom;
Lt_Art[i][j][k] = IDArt;
Art = xmldoc.firstChild.childNodes[i].childNodes[j].childNodes[k].attributes.content;
if (tracer == "Total") {
trace("\t\t\tArticle "+(i+1)+"."+(j+1)+"."+(k+1)+" : "+Art);
}
Lt_Content_Art[i][j][k] = Art;
}
}
}
}
}
if (tracer) {
trace("--------------------------------------------------------------");
}
//tracer = false;
if (tracer == "Liste") {
trace("Lt_Chap ="+Lt_Chap);
trace("Lt_Content_Chap = "+Lt_Content_Chap);
trace("Lt_NbSub ="+Lt_NbSub);
trace("Lt_Sub ="+Lt_Sub);
trace("Lt_Content_Sub = "+Lt_Content_Sub);
trace("Lt_NbArt ="+Lt_NbArt);
trace("Lt_Art = "+Lt_Art);
trace("Lt_Content_Art ="+Lt_Content_Art);
}
TotalLoad = true;
}

Ma Question:

pour je ne sais quel raison dans les sous chapitres et les articles, il me met un élément suplémentaire qui me donne un truc du genre:
Lt_sub(a,b,c,)
et je ne sais pas si c'est lier, mais il en resulte que lorsque je récupere les liste(array)pour afficher mon menu, il plante si mon xml ne contient pas 4 sub_chap pour le dernier Chap ou encore il plante si entre duex chapitre contenant de sub_chap, il y a un Chap sans Sub_chap...

la routine qui utilise les liste pour afficher le menu

function TraceMenu() {
y = 80;
createMenu("Menu", Lt_Chap, "Stand");
for (i=0; i<Lt_Chap.length; i++) {
nb_chap++;
trace(Lt_Chap[i]);
//trace(Lt_Chap);
Lt_Sub[i].pop();
for (j=0; j<Lt_NbSub[i]; j++) {
nb_sub++;
if (Lt_NbSub[i]) {
trace(" "+Lt_Sub[i][j]);
//trace(" "+Lt_Sub[i]);
if(Lt_Sub[i][j].length ==0){
trace ("vide")
};
Lt_Art[i][j].pop();
for (k=0; k<Lt_NbArt[i][j]; k++) {
nb_art++;
if (Lt_NbArt[i][j]) {
trace(" "+Lt_Art[i][j][k]);
//trace(" "+Lt_Art[i][j]);
if(Lt_Art[i][j][k-1].length ==0){
trace ("vide")
};
}
}
}
}
}
//trace(nb_chap+"/"+nb_sub+"/"+nb_art);
}


Réponses

 sp spRe: problème de Parser Xml  Oznog23/1/2004
 sp spRe: problème de Parser Xml  blues23/1/2004
 sp spRe: problème de Parser Xml  Oznog24/1/2004
 sp spRe: problème de Parser Xml  blues24/1/2004
 sp spRe: problème de Parser Xml  Oznog24/1/2004
Aucun médias sociaux
X

Trucsweb.com Connexion

Connexion

X

Trucsweb.com Mot de passe perdu

Connexion

X

Trucsweb.com Conditions générales

Conditions

Responsabilité

La responsabilité des Trucsweb.com ne pourra être engagée en cas de faits indépendants de sa volonté. Les informations mises à disposition sur ce site le sont uniquement à titre purement informatif et ne sauraient constituer en aucun cas un conseil ou une recommandation de quelque nature que ce soit.

Aucun contrôle n'est exercé sur les références et ressources externes, l'utilisateur reconnaît que les Trucsweb.com n'assume aucune responsabilité relative à la mise à disposition de ces ressources, et ne peut être tenue responsable quant à leur contenu.

Droit applicable et juridiction compétente

Les règles en matière de droit, applicables aux contenus et aux transmissions de données sur et autour du site, sont déterminées par la loi canadienne. En cas de litige, n'ayant pu faire l'objet d'un accord à l'amiable, seuls les tribunaux canadien sont compétents.

X

Trucsweb.com Trucsweb

X

Trucsweb.com Glossaire

X

Trucsweb.com Trucsweb

X

Trucsweb.com Trucsweb

Conditions

Aucun message!

Merci.

X
Aucun message!
X

Trucsweb.com Créer un compte

Créer un compte

.
@