Bonjour,
ne pratiquant pas jusqu'à présent xml, je n'ai jamais utilisé les fonctions node et j'ai des soucis de compréhension, d'autant que je ne sais pas si mes problèmes viennent de ma mauvaise utilisation de Javascript ou de ma mauvaise création de fichier XML. Je m'explique : je souhaite "parser" un fichier xml que l'on va me fournir. Pour les besoins du test, j'en construit un à partir des meta tags du monde, par exemple :
Je postule qu'il est correctement constitué puisque autant IE que FF arrivent à le lire sans m'insulter. MAis bon ... pouvez-vous le confirmer ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 <entete> <meta><robots><valeur data="INDEX"/><valeur data="FOLLOW"/><valeur data="NOARCHIVE"/></robots></meta> <meta><description><valeur data="LE MONDE, Journal Le Monde, quotidien d\'information francophone / Le Monde, the french quality newspaper of record"/></description></meta> <meta> <keywords> <valeur data="LE MONDE"/> <valeur data=" INFORMATIONS"/> <valeur data=" INFOS"/> <valeur data=" QUOTIDIEN"/> <valeur data=" DAILY NEWS"/> <valeur data=" PRESSE"/> <valeur data=" PRESS"/> <valeur data=" NEWS"/> <valeur data=" FRANCE"/> <valeur data=" FRENCH"/> <valeur data=" DOSSIERS"/> <valeur data=" ECONOMIE"/> <valeur data=" ECONOMY"/> <valeur data=" CULTURE"/> <valeur data=" INTERNATIONAL"/> <valeur data=" BOURSE"/> <valeur data=" CINEMA"/> <valeur data=" MOVIES"/> <valeur data=" LIVRES"/> <valeur data=" BOOKS"/> <valeur data=" MULTIMEDIA"/> <valeur data=" EDUCATION"/> <valeur data=" FORUMS"/> <valeur data=" FORUM"/> <valeur data=" SERVICES"/> <valeur data=" ABONNEMENTS"/> <valeur data=" BOUTIQUE"/> <valeur data=" EMPLOI"/> <valeur data=" EXPOSITIONS"/> <valeur data=" FESTIVALS"/> <valeur data=" SPORT"/> <valeur data=" MAGAZINE"/> <valeur data=" EUROPEEN"/> <valeur data=" DIPLOMATIQUE"/> <valeur data=" PARTENAIRES"/> <valeur data=" PUBLICITE"/> <valeur data=" LETTRES D\'INFORMATIONS"/> <valeur data=" NEWSLETTERS"/> <valeur data=" JOURNAL EN LIGNE"/> <valeur data=" LE MONDE ON LINE"/> <valeur data=" VERSION PALM"/> <valeur data=" VERSION MOBILES"/> <valeur data=" MOBILE SERVICES"/> <valeur data=" METEO"/> <valeur data=" ARCHIVES"/> <valeur data=" DOCUMENTATION"/> <valeur data=" NOUVELLES TECHNOLOGIES"/> <valeur data=" HIGH TECH"/> <valeur data=" TRADUCTEUR"/> <valeur data=" TRANSLATOR"/></keywords></meta></entete>
Une structure de type :
a été "validée" ici http://www.developpez.net/forums/sho...d.php?t=150901
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <metatags> <robots> <option>INDEX</option> <option>FOLLOW</option> <option>NOARCHIVE</option> </robots> <description> <lang xml:lang="fr">LE MONDE, Journal Le Monde, quotidien d'information francophone</lang> <lang xml:lang="en">Le Monde, the french quality newspaper of record</lang> </description> <keywords> <keyword>LE MONDE</keyword> <keyword>INFORMATIONS</keyword> <keyword>INFOS</keyword> <keyword>QUOTIDIEN</keyword> </keywords> </metatags>
Ensuite, je souhaite parcourir ce document, tel un singe moyen, passant de branche en branche, noeud par noeud pour reprendre les termes javascript mais la
me retourne toujours 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 function zz_affiche_datas(stream) { var vl_datas = stream; monfils=vl_datas.firstChild; alert("children.childNodes.length ->"+vl_datas.childNodes.length);
donc rien n'est renvoyé par
ni
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 for(var i=0;i<monfils.childNodes.length;i++){ nextNode = monfils.childNodes[i]; alert("attributes.length ->"+nextNode.attributes.length); ... }
Je dois donc me mélanger les pinceaux avec les noeuds, attributs etc !! Je suis pommé, help
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 while (monfils!=null) { alert(monfils.nodeName); monfils = monfils.nextSibling; }
Partager