ref: 47a288683dbdc55c5df9b9f65db9909de6021af0
dir: /libxml/xmlfind.c/
#include <u.h>
#include <libc.h>
#include "xml.h"
/*
* search for element, starting at ep.
*/
Elem *
xmlfind(Xml *xp, Elem *ep, char *path)
{
char *p;
Elem *t;
USED(xp);
if (path == nil)
return nil;
if (*path == '/')
path++;
if ((p = strchr(path, '/')) == nil)
if((p = strchr(path, 0)) == nil)
return nil; // shut up lint !
for(; ep; ep = ep->next)
if (strncmp(ep->name, path, p-path) == 0){
if (*p == 0)
return ep;
if (! ep->child)
continue;
if ((t = xmlfind(xp, ep->child, p)) != nil)
return t;
}
return nil;
}