/*====================================================================*
 *
 *   char const * xmlselect (struct node const * node, char const * element, char const * attribute);
 *
 *   node.h
 *
 *   search node for the named element and attribute and return the
 *   attribute value;
 *
 *   if the attribute argument is null or nil then return the element
 *   content string;
 *
 *   if the element does not exist or the attribute does not exist
 *   for that element or the attribute has no value then an empty
 *   string is returned;
 *
 *   Motley Tools by Charles Maier <cmaier@cmassoc.net>;
 *   Copyright (c) 2001-2006 by Charles Maier Associates;
 *   Licensed under the Internet Software Consortium License;
 *
 *--------------------------------------------------------------------*/

#ifndef XMLSELECT_SOURCE
#define XMLSELECT_SOURCE

#include <string.h>

#include "../nodes/node.h"

char const * xmlselect (struct node const * node, char const * element, char const * attribute)

{
	node = xmlelement (node, element);
	if ((attribute) && (* attribute))
	{
		node = xmlattribute (node, attribute);
		node = xmlvalue (node);
	}
	else
	{
		node = xmldata (node);
	}
	return (node? node->text: "");
}

#endif