00001 #include <libxml/xmlwriter.h>
00002 #include <libxml/xmlreader.h>
00003 #include <string.h>
00004
00005 int
00006 vapiXMLNextElement (xmlTextReader * xmlInput)
00007 {
00008 int ret = 0, status = 1;
00009
00010 while (status == 1 && ret != 1)
00011 {
00012 status = xmlTextReaderRead (xmlInput);
00013 ret = xmlTextReaderNodeType (xmlInput);
00014
00015 }
00016 return status;
00017 }
00018
00019 int
00020 vapiXMLNextElementNamed (xmlTextReader * xmlInput, char *nodeName)
00021 {
00022
00023 int status = 1, ret = 0, ends = 0;
00024 while (status == 1)
00025 {
00026
00027 status = xmlTextReaderRead (xmlInput);
00028
00029 ret = xmlTextReaderNodeType (xmlInput);
00030
00031
00032 if (ret == 15)
00033 {
00034 ends++;
00035
00036
00037
00038 if (ends == 2)
00039 {
00040 return 0;
00041 }
00042 }
00043
00044 if (ret == 1)
00045 {
00046
00047 if (!strcmp
00048 ((char *) xmlTextReaderLocalName (xmlInput),
00049 nodeName))
00050 {
00051
00052 return 1;
00053 }
00054
00055
00056 }
00057
00058 }
00059
00060 return -1;
00061 }