Return to includeaddkeyword.c CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / doc / tutorial |
1.1 ! misho 1: <![CDATA[ ! 2: #include <stdio.h> ! 3: #include <string.h> ! 4: #include <stdlib.h> ! 5: #include <libxml/xmlmemory.h> ! 6: #include <libxml/parser.h> ! 7: ! 8: void ! 9: parseStory (xmlDocPtr doc, xmlNodePtr cur, char *keyword) { ! 10: ! 11: xmlNewTextChild (cur, NULL, "keyword", keyword); ! 12: return; ! 13: } ! 14: ! 15: xmlDocPtr ! 16: parseDoc(char *docname, char *keyword) { ! 17: ! 18: xmlDocPtr doc; ! 19: xmlNodePtr cur; ! 20: ! 21: doc = xmlParseFile(docname); ! 22: ! 23: if (doc == NULL ) { ! 24: fprintf(stderr,"Document not parsed successfully. \n"); ! 25: return (NULL); ! 26: } ! 27: ! 28: cur = xmlDocGetRootElement(doc); ! 29: ! 30: if (cur == NULL) { ! 31: fprintf(stderr,"empty document\n"); ! 32: xmlFreeDoc(doc); ! 33: return (NULL); ! 34: } ! 35: ! 36: if (xmlStrcmp(cur->name, (const xmlChar *) "story")) { ! 37: fprintf(stderr,"document of the wrong type, root node != story"); ! 38: xmlFreeDoc(doc); ! 39: return (NULL); ! 40: } ! 41: ! 42: cur = cur->xmlChildrenNode; ! 43: while (cur != NULL) { ! 44: if ((!xmlStrcmp(cur->name, (const xmlChar *)"storyinfo"))){ ! 45: parseStory (doc, cur, keyword); ! 46: } ! 47: ! 48: cur = cur->next; ! 49: } ! 50: return(doc); ! 51: } ! 52: ! 53: int ! 54: main(int argc, char **argv) { ! 55: ! 56: char *docname; ! 57: char *keyword; ! 58: xmlDocPtr doc; ! 59: ! 60: if (argc <= 2) { ! 61: printf("Usage: %s docname, keyword\n", argv[0]); ! 62: return(0); ! 63: } ! 64: ! 65: docname = argv[1]; ! 66: keyword = argv[2]; ! 67: doc = parseDoc (docname, keyword); ! 68: if (doc != NULL) { ! 69: xmlSaveFormatFile (docname, doc, 0); ! 70: xmlFreeDoc(doc); ! 71: } ! 72: ! 73: return (1); ! 74: } ! 75: ]]>