Annotation of embedaddon/libxml2/doc/tutorial/includeaddattribute.c, revision 1.1.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>