Annotation of embedaddon/libxml2/doc/tutorial/includegetattribute.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: void
                      9: getReference (xmlDocPtr doc, xmlNodePtr cur) {
                     10: 
                     11:        xmlChar *uri;
                     12:        cur = cur->xmlChildrenNode;
                     13:        while (cur != NULL) {
                     14:            if ((!xmlStrcmp(cur->name, (const xmlChar *)"reference"))) {
                     15:                    uri = xmlGetProp(cur, "uri");
                     16:                    printf("uri: %s\n", uri);
                     17:                    xmlFree(uri);
                     18:            }
                     19:            cur = cur->next;
                     20:        }
                     21:        return;
                     22: }
                     23: 
                     24: 
                     25: void
                     26: parseDoc(char *docname) {
                     27: 
                     28:        xmlDocPtr doc;
                     29:        xmlNodePtr cur;
                     30: 
                     31:        doc = xmlParseFile(docname);
                     32:        
                     33:        if (doc == NULL ) {
                     34:                fprintf(stderr,"Document not parsed successfully. \n");
                     35:                return;
                     36:        }
                     37:        
                     38:        cur = xmlDocGetRootElement(doc);
                     39:        
                     40:        if (cur == NULL) {
                     41:                fprintf(stderr,"empty document\n");
                     42:                xmlFreeDoc(doc);
                     43:                return;
                     44:        }
                     45:        
                     46:        if (xmlStrcmp(cur->name, (const xmlChar *) "story")) {
                     47:                fprintf(stderr,"document of the wrong type, root node != story");
                     48:                xmlFreeDoc(doc);
                     49:                return;
                     50:        }
                     51:        
                     52:        getReference (doc, cur);
                     53:        xmlFreeDoc(doc);
                     54:        return;
                     55: }
                     56: 
                     57: int
                     58: main(int argc, char **argv) {
                     59: 
                     60:        char *docname;
                     61: 
                     62:        if (argc <= 1) {
                     63:                printf("Usage: %s docname\n", argv[0]);
                     64:                return(0);
                     65:        }
                     66: 
                     67:        docname = argv[1];
                     68:        parseDoc (docname);
                     69:        
                     70:        return (1);
                     71: }
                     72: ]]>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>