voila mon code :
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
XMLPlatformUtils::Initialize();
XercesDOMParser *parser = new XercesDOMParser;
parser->parse("/home/jalel/ski.xmt");
DOMElement *repertoire = parser->getDocument()->getDocumentElement();
DOMNodeList *Transform = repertoire->getElementsByTagName(XMLString::transcode("Transform"));
//cout<<"le nombre de noeuds trasform est "<<Transform->getLength()<<endl;
DOMNodeList  *Material=repertoire->getElementsByTagName(XMLString::transcode("Material"));
//cout<<"le nombre de noeud material est "<<Material->getLength()<<endl;
XMLCh colorTab[Material->getLength()*2];
//cout<<"le nom de la balise "<<repertoire->getNamespaceURI();
int j=0;
const XMLCh *xmlch(XMLString::transcode("Transform"));
const XMLCh *Xml;
DOMNamedNodeMap *e;
cout<< "le nombre de noeud mat     "<<Material->getLength()<<endl;
      if (Transform->getLength()>0)
      {
				for(int i=0;i<Material->getLength();i++)
				{    
					cout <<i<<endl;
					DOMNode *st=Material->item(i)->getParentNode();cout<<"    "<<st;
					//extraction du code RGB du coulueur de l'objet
					Xml=st->getNodeName();
					while( *xmlch != *Xml   )
					{
					st=st->getParentNode();
					Xml=st->getNodeName();
					cout<<*Xml<<"         "<<*xmlch<<"      "<<st<<endl;
					}
					e=st->getAttributes();//["diffuseColor"].InnerText;
					cout<< e->getLength()<<endl;
					colorTab[j+1]=*(e->getNamedItem(XMLString::transcode("diffuseColor"))->getTextContent());
			        cout <<colorTab[j+1]<<endl;
					j=j+2;
				}
mon probleme c'est que je veux lister toute les balises Material dans mon fichier et avoir son nom egalement ses attributs mais le probleme est cette instruction :
colorTab[j+1]=*(e->getNamedItem(XMLString::transcode("diffuseColor"))->getTextContent());
si je supprime cette instruction l'exécution donne plusieurs balises Material et avec cette instrction elle me donne une seule (en fait la premiere ) ?
Que dois je faire ?