salut tout le monde,
je m'attaque en ce moment à la libxml de c/c++, et j'essaye leurs exemples, et bien évidemment, ça marche pas!!
donc voilà le bout de code en question :
Code :
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- #include <libxml/xmlmemory.h>
- #include <libxml/parser.h>
- #include <libxml/xmlschemas.h>
- void
- parseDoc(char *docname) {
- xmlDocPtr doc;
- xmlNodePtr cur;
- xmlChar *uri;
- doc = xmlParseFile(docname);
-
- cur = xmlDocGetRootElement(doc);
- cur = cur->xmlChildrenNode;
-
- while (cur != NULL) {
- if (!xmlStrcmp(cur->name, (const xmlChar *)"storyinfo" )) {
- printf ("coucoucoucou %s \n", cur->name);
- cur = cur->xmlChildrenNode;
-
- printf ("coucoucoucou %s \n", cur->name);
- if (!xmlStrcmp(cur->name, (const xmlChar *)"keyword" )) {
- uri = xmlGetProp(cur, (const xmlChar *)"id" );
- printf("uri: %s\n", uri);
- xmlFree(uri);
- }
- }
- cur=cur->next;
- }
- xmlFreeDoc(doc);
- return;
- }
- int
- main(int argc, char **argv) {
- char *docname;
- if (argc <= 1) {
- printf("Usage: %s docname \n", argv[0]);
- return(0);
- }
- docname = argv[1];
-
- parseDoc (docname);
- return (1);
- }
|
le fichier xml d'exemple :
Code :
- <?xml version="1.0"?>
- <story>
- <storyinfo>
- <author>John Fleck</author>
- <datewritten>June 2, 2002</datewritten>
- <keyword>example keyword</keyword>
- </storyinfo>
- <body>
- <headline>This is the headline</headline>
- <para>This is the body text.</para>
- </body>
- <reference uri="http://" />
- </story>
|
et la sortie :
Code :
- coucoucoucou storyinfo
- coucoucoucou text
|
comme vous pouvez le voir, il me sort "text" au lieu de keyword, comprends pas pourquoi!
si c une grosse erreur de ma part, patapé, je commence juste le C/C++
merci!
Message édité par arghbis le 13-06-2003 à 16:22:43