diff options
author | William Joye <wjoye@cfa.harvard.edu> | 2017-05-03 15:21:49 (GMT) |
---|---|---|
committer | William Joye <wjoye@cfa.harvard.edu> | 2017-05-03 15:21:49 (GMT) |
commit | 4b8453f0303492a1de2dcf854555f6429fac550e (patch) | |
tree | 54abb57f4c5191452cadcac2f12feacbfc1f3218 /libxml2/testXPath.c | |
parent | 7617e7a38edce33eab6ca4259b416b339e07ea29 (diff) | |
download | blt-4b8453f0303492a1de2dcf854555f6429fac550e.zip blt-4b8453f0303492a1de2dcf854555f6429fac550e.tar.gz blt-4b8453f0303492a1de2dcf854555f6429fac550e.tar.bz2 |
reinstall libxml2/libxslt
Diffstat (limited to 'libxml2/testXPath.c')
-rw-r--r-- | libxml2/testXPath.c | 229 |
1 files changed, 0 insertions, 229 deletions
diff --git a/libxml2/testXPath.c b/libxml2/testXPath.c deleted file mode 100644 index ebb9ff7..0000000 --- a/libxml2/testXPath.c +++ /dev/null @@ -1,229 +0,0 @@ -/* - * testXPath.c : a small tester program for XPath. - * - * See Copyright for the status of this software. - * - * daniel@veillard.com - */ - -#include "libxml.h" -#if defined(LIBXML_XPATH_ENABLED) && defined(LIBXML_DEBUG_ENABLED) - -#include <string.h> - -#ifdef HAVE_SYS_TYPES_H -#include <sys/types.h> -#endif -#ifdef HAVE_SYS_STAT_H -#include <sys/stat.h> -#endif -#ifdef HAVE_FCNTL_H -#include <fcntl.h> -#endif -#ifdef HAVE_UNISTD_H -#include <unistd.h> -#endif -#ifdef HAVE_STDLIB_H -#include <stdlib.h> -#endif - - -#include <libxml/xpath.h> -#include <libxml/tree.h> -#include <libxml/parser.h> -#include <libxml/debugXML.h> -#include <libxml/xmlmemory.h> -#include <libxml/parserInternals.h> -#include <libxml/xpathInternals.h> -#include <libxml/xmlerror.h> -#include <libxml/globals.h> -#if defined(LIBXML_XPTR_ENABLED) -#include <libxml/xpointer.h> -static int xptr = 0; -#endif -static int debug = 0; -static int valid = 0; -static int expr = 0; -static int tree = 0; -static int nocdata = 0; -static xmlDocPtr document = NULL; - -/* - * Default document - */ -static xmlChar buffer[] = -"<?xml version=\"1.0\"?>\n\ -<EXAMPLE prop1=\"gnome is great\" prop2=\"& linux too\">\n\ - <head>\n\ - <title>Welcome to Gnome</title>\n\ - </head>\n\ - <chapter>\n\ - <title>The Linux adventure</title>\n\ - <p>bla bla bla ...</p>\n\ - <image href=\"linus.gif\"/>\n\ - <p>...</p>\n\ - </chapter>\n\ - <chapter>\n\ - <title>Chapter 2</title>\n\ - <p>this is chapter 2 ...</p>\n\ - </chapter>\n\ - <chapter>\n\ - <title>Chapter 3</title>\n\ - <p>this is chapter 3 ...</p>\n\ - </chapter>\n\ -</EXAMPLE>\n\ -"; - - -static void -testXPath(const char *str) { - xmlXPathObjectPtr res; - xmlXPathContextPtr ctxt; - -#if defined(LIBXML_XPTR_ENABLED) - if (xptr) { - ctxt = xmlXPtrNewContext(document, NULL, NULL); - res = xmlXPtrEval(BAD_CAST str, ctxt); - } else { -#endif - ctxt = xmlXPathNewContext(document); - ctxt->node = xmlDocGetRootElement(document); - if (expr) - res = xmlXPathEvalExpression(BAD_CAST str, ctxt); - else { - /* res = xmlXPathEval(BAD_CAST str, ctxt); */ - xmlXPathCompExprPtr comp; - - comp = xmlXPathCompile(BAD_CAST str); - if (comp != NULL) { - if (tree) - xmlXPathDebugDumpCompExpr(stdout, comp, 0); - - res = xmlXPathCompiledEval(comp, ctxt); - xmlXPathFreeCompExpr(comp); - } else - res = NULL; - } -#if defined(LIBXML_XPTR_ENABLED) - } -#endif - xmlXPathDebugDumpObject(stdout, res, 0); - xmlXPathFreeObject(res); - xmlXPathFreeContext(ctxt); -} - -static void -testXPathFile(const char *filename) { - FILE *input; - char expression[5000]; - int len; - - input = fopen(filename, "r"); - if (input == NULL) { - xmlGenericError(xmlGenericErrorContext, - "Cannot open %s for reading\n", filename); - return; - } - while (fgets(expression, 4500, input) != NULL) { - len = strlen(expression); - len--; - while ((len >= 0) && - ((expression[len] == '\n') || (expression[len] == '\t') || - (expression[len] == '\r') || (expression[len] == ' '))) len--; - expression[len + 1] = 0; - if (len >= 0) { - printf("\n========================\nExpression: %s\n", expression) ; - testXPath(expression); - } - } - - fclose(input); -} - -int main(int argc, char **argv) { - int i; - int strings = 0; - int usefile = 0; - char *filename = NULL; - - for (i = 1; i < argc ; i++) { -#if defined(LIBXML_XPTR_ENABLED) - if ((!strcmp(argv[i], "-xptr")) || (!strcmp(argv[i], "--xptr"))) - xptr++; - else -#endif - if ((!strcmp(argv[i], "-debug")) || (!strcmp(argv[i], "--debug"))) - debug++; - else if ((!strcmp(argv[i], "-valid")) || (!strcmp(argv[i], "--valid"))) - valid++; - else if ((!strcmp(argv[i], "-expr")) || (!strcmp(argv[i], "--expr"))) - expr++; - else if ((!strcmp(argv[i], "-tree")) || (!strcmp(argv[i], "--tree"))) - tree++; - else if ((!strcmp(argv[i], "-nocdata")) || - (!strcmp(argv[i], "--nocdata"))) - nocdata++; - else if ((!strcmp(argv[i], "-i")) || (!strcmp(argv[i], "--input"))) - filename = argv[++i]; - else if ((!strcmp(argv[i], "-f")) || (!strcmp(argv[i], "--file"))) - usefile++; - } - if (valid != 0) xmlDoValidityCheckingDefaultValue = 1; - xmlLoadExtDtdDefaultValue |= XML_DETECT_IDS; - xmlLoadExtDtdDefaultValue |= XML_COMPLETE_ATTRS; - xmlSubstituteEntitiesDefaultValue = 1; -#ifdef LIBXML_SAX1_ENABLED - if (nocdata != 0) { - xmlDefaultSAXHandlerInit(); - xmlDefaultSAXHandler.cdataBlock = NULL; - } -#endif - if (document == NULL) { - if (filename == NULL) - document = xmlReadDoc(buffer,NULL,NULL,XML_PARSE_COMPACT); - else - document = xmlReadFile(filename,NULL,XML_PARSE_COMPACT); - } - for (i = 1; i < argc ; i++) { - if ((!strcmp(argv[i], "-i")) || (!strcmp(argv[i], "--input"))) { - i++; continue; - } - if (argv[i][0] != '-') { - if (usefile) - testXPathFile(argv[i]); - else - testXPath(argv[i]); - strings ++; - } - } - if (strings == 0) { - printf("Usage : %s [--debug] [--copy] stringsorfiles ...\n", - argv[0]); - printf("\tParse the XPath strings and output the result of the parsing\n"); - printf("\t--debug : dump a debug version of the result\n"); - printf("\t--valid : switch on DTD support in the parser\n"); -#if defined(LIBXML_XPTR_ENABLED) - printf("\t--xptr : expressions are XPointer expressions\n"); -#endif - printf("\t--expr : debug XPath expressions only\n"); - printf("\t--tree : show the compiled XPath tree\n"); - printf("\t--nocdata : do not generate CDATA nodes\n"); - printf("\t--input filename : or\n"); - printf("\t-i filename : read the document from filename\n"); - printf("\t--file : or\n"); - printf("\t-f : read queries from files, args\n"); - } - if (document != NULL) - xmlFreeDoc(document); - xmlCleanupParser(); - xmlMemoryDump(); - - return(0); -} -#else -#include <stdio.h> -int main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) { - printf("%s : XPath/Debug support not compiled in\n", argv[0]); - return(0); -} -#endif /* LIBXML_XPATH_ENABLED */ |