Source Code File 06-03_nodevalue3
06-03_nodevalue3.c
#include <stdio.h>
#include <stdlib.h>
#include <libxml/parser.h>
void ehunt(xmlDocPtr d,xmlNodePtr n,const xmlChar *c)
{
    xmlNodePtr cur;
    xmlChar *value;
    for(cur=n; cur; cur=cur->next)
    {
        if( !xmlStrcmp(cur->name,c) )
        {
            value = xmlNodeListGetString(d,cur->children,1);
            printf("<%s> is '%s'\n",cur->name,value);
            xmlFree(value);
            return;
        }
        if( cur->children )
            ehunt(d,cur->children,c);
    }
}
int main()
{
    const char filename[] = "sample.xml";
    xmlDocPtr doc;
    xmlNodePtr root;
    doc = xmlParseFile(filename);
    if( doc==NULL )
    {
        fprintf(stderr,"Unable to open %s\n",filename);
        exit(1);
    }
    root = xmlDocGetRootElement(doc);
    ehunt(doc,root,(const xmlChar *)"assistant");
    xmlFreeDoc(doc);
    return(0);
}
	Output
<assistant> is 'Cad Lackey'
Notes
* The element name is specified at Line 38. Change it to another element name to fetch its value.
Copyright © 1997-2025 by QPBC.
All rights reserved
