voila le bout de code :
l'execution de ce code me donne :
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 DOMNodeList * Forme = repertoire->getElementsByTagName(XMLString::transcode("geometry")); string geomTab[Forme->getLength()*2]; cout<<"le nombre de balise Form est "<<Forme->getLength()<<endl<<endl; j=0; for(int i=0;i<Forme->getLength();i++) { cout <<i; DOMNode *st=Forme->item(i); st=st->getFirstChild(); cout<<" _____ "; cout<<XMLString::transcode(st->getNodeValue()); char * ST=XMLString::transcode(st->getNodeName()); while( strcmp(Tr,ST) != 0 ) { cout<<" "<<XMLString::transcode(st->getNodeName())<<endl; st=st->getParentNode(); ST=XMLString::transcode(st->getNodeName()); } e=st->getAttributes(); XMLCh *nameAttri = XMLString::transcode("DEF"); DOMAttr *attri = (DOMAttr *) e->getNamedItem(nameAttri); if (attri == NULL ) { e=st->getParentNode()->getParentNode()->getAttributes(); attri = (DOMAttr *) e->getNamedItem(nameAttri); XMLString::release(&nameAttri); geomTab[j]=XMLString::transcode(attri->getValue()); cout<<" "<<geomTab[j]; cout<<endl; } else { XMLString::release(&nameAttri); geomTab[j]=XMLString::transcode(attri->getValue()); cout<<" "<<geomTab[j]; cout<<endl; } char * ch ="IndexedFaceSet"; if (geomTab[j+1].compare(ch) == 0 ) { geomTab[j+1]="Compound_Form"; cout<<" he "<<geomTab[j+1]; } j=j+2; }
le nombre de balise Form est 5
0 _____
#text =====> C'est ça l'erreur :elle doit m'afficher le nom d'une balise
geometry
Shape
children
SphereBleuCiel
1 _____
#text
geometry
Shape
children
SphereRose
2 _____
#text
geometry
Shape
children
Box
3 _____
#text
geometry
Shape
children
SphereViolet
4 _____
#text
geometry
Shape
children
Box01
voila un bout de fichier XML :
<Shape>
<appearance>
<Appearance>
<material>
<Material diffuseColor="0.898 0.6039 0.8431"/>
</material>
</Appearance>
</appearance>
<geometry>
<Sphere radius="12.5"/>
</geometry>
</Shape>
pour ce bout de fichier, au lieu de #text je dois avoir Sphere (nom de la balise fille de geometry)
Partager