Annotation of embedaddon/libxml2/doc/tutorial/includeaddattribute.c, revision 1.1
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:
! 9: xmlDocPtr
! 10: parseDoc(char *docname, char *uri) {
! 11:
! 12: xmlDocPtr doc;
! 13: xmlNodePtr cur;
! 14: xmlNodePtr newnode;
! 15: xmlAttrPtr newattr;
! 16:
! 17: doc = xmlParseFile(docname);
! 18:
! 19: if (doc == NULL ) {
! 20: fprintf(stderr,"Document not parsed successfully. \n");
! 21: return (NULL);
! 22: }
! 23:
! 24: cur = xmlDocGetRootElement(doc);
! 25:
! 26: if (cur == NULL) {
! 27: fprintf(stderr,"empty document\n");
! 28: xmlFreeDoc(doc);
! 29: return (NULL);
! 30: }
! 31:
! 32: if (xmlStrcmp(cur->name, (const xmlChar *) "story")) {
! 33: fprintf(stderr,"document of the wrong type, root node != story");
! 34: xmlFreeDoc(doc);
! 35: return (NULL);
! 36: }
! 37:
! 38: newnode = xmlNewTextChild (cur, NULL, "reference", NULL);
! 39: newattr = xmlNewProp (newnode, "uri", uri);
! 40: return(doc);
! 41: }
! 42:
! 43: int
! 44: main(int argc, char **argv) {
! 45:
! 46: char *docname;
! 47: char *uri;
! 48: xmlDocPtr doc;
! 49:
! 50: if (argc <= 2) {
! 51: printf("Usage: %s docname, uri\n", argv[0]);
! 52: return(0);
! 53: }
! 54:
! 55: docname = argv[1];
! 56: uri = argv[2];
! 57: doc = parseDoc (docname, uri);
! 58: if (doc != NULL) {
! 59: xmlSaveFormatFile (docname, doc, 1);
! 60: xmlFreeDoc(doc);
! 61: }
! 62: return (1);
! 63: }
! 64: ]]>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>