salut,
j'ai arriver a faire une application QT4 et webkit qui fait le chargement d'une page web puis affiche leur code html ,et maintenat je suis entrain de construire l'arbre dom de page html ,j'ai arrivé a construire l'arbre pour la racine de la page (les noeuds de la racine ) voila mon code :
QDomElement racine = doc.documentElement(); //renvoie la balise racine
comment je peux modifier mon code pour avoir afficher les noeuds des noeuds de la balise racine ??
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 QDomNode noeud = racine.firstChild(); while (!noeud.isNull()) { if (noeud.isElement()) { QDomElement e = noeud.toElement(); qDebug() << "Element name : " << e.tagName(); affichage = e.tagName(); QStringList attributes; QDomNamedNodeMap emap = e.attributes(); for(i=0;i<emap.length();++i) { qDebug() << " la balise " <<e.tagName()<< "has attributs ::" ; QDomNode attribute = emap.item(i); attributes << attribute.nodeName() + "=\"" +attribute.nodeValue() + "\""; qDebug() <<attributes ; } listnode = e.childNodes(); //crée un tableau des enfants for(i=0;i<listnode.length();i++) { n = listnode.item(i); affichage = affichage + " " + n.firstChild().toText().data(); QDomElement eaff = n.toElement(); affichage = affichage + " " + eaff.tagName(); qDebug() << "childs names de la balise " <<e.tagName()<< "est : "<<eaff.tagName(); if (n.hasChildNodes ()) { slistnode = eaff.childNodes(); int k= eaff.childNodes().count(); qDebug()<<" k=== "<< k; for(int k=0;k<slistnode.length();k++) { sn = slistnode.item(k); affichage = affichage + " " + sn.firstChild().toText().data(); QDomElement eafff = sn.toElement(); }} } if (!n.hasChildNodes ()) {qDebug()<<" 00000 ";} msg.setText(affichage); //affichage dans un QMessageBox msg.exec(); } noeud = noeud.nextSibling(); }
par exemple pour cette page html:
il affiche que <title> est l'enfant de <head>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <html> <head> <title> premier test </title></head> <body><table border=9 height=100% width=100% bgcolor=skyblue> <tr> <td> <a href=culture.html target=blank> <b><u><font color=red> culture :</font></u></b><br> journée mondial pour les enfants </a> </td> </tr> </table> </body> </html>
et <table> est l'enfant de <body>
comment je peux avoir aussi que <td> est l'enfant de <tr> et <a> l'enfant de <td>..ect ??? c'est a dire l'arbre dom de tous les balises ???,
merci pour tout aide ;;;
Partager