diff options
author | Daniel Veillard <veillard@src.gnome.org> | 2002-01-22 22:12:19 +0000 |
---|---|---|
committer | Daniel Veillard <veillard@src.gnome.org> | 2002-01-22 22:12:19 +0000 |
commit | 2070c48cdc2809b1676386d3eea6bc8050347748 (patch) | |
tree | bb2d05fa459dead80aa48d26541c83ec909c8e8c | |
parent | 5e926fa77ed2539ae9f2376cca81fe9c564e06f1 (diff) | |
download | libxml2-2070c48cdc2809b1676386d3eea6bc8050347748.tar.gz |
added an xpath function to the shell for T. V. Raman Daniel
* debugXML.c: added an xpath function to the shell for T. V. Raman
Daniel
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | debugXML.c | 15 |
2 files changed, 20 insertions, 1 deletions
@@ -1,4 +1,8 @@ -Tue Jan 22 22:42:23 CET 2002 Daniel Veillard <daniel@veillard.com> +Tue Jan 22 23:11:26 CET 2002 Daniel Veillard <daniel@veillard.com> + + * debugXML.c: added an xpath function to the shell for T. V. Raman + +Tue Jan 22 22:42:23 CET 2002 Daniel Veillard <daniel@veillard.com> * debugXML.c: patch from Anthony Jones to catch NULL nodes in debug routines. @@ -2048,6 +2048,9 @@ xmlShell(xmlDocPtr doc, char *filename, xmlShellReadlineFunc input, fprintf(stdout, "\tfree display memory usage\n"); fprintf(stdout, "\tload [name] load a new document with name\n"); fprintf(stdout, "\tls [path] list contents of path or the current directory\n"); +#ifdef LIBXML_XPATH_ENABLED + fprintf(stdout, "\txpath expr evaluate the XPath expression in that context and print the result\n"); +#endif /* LIBXML_XPATH_ENABLED */ fprintf(stdout, "\tpwd display current working directory\n"); fprintf(stdout, "\tquit leave shell\n"); fprintf(stdout, "\tsave [name] save this document to name or the original name\n"); @@ -2079,6 +2082,18 @@ xmlShell(xmlDocPtr doc, char *filename, xmlShellReadlineFunc input, xmlShellDu(ctxt, NULL, ctxt->node, NULL); } else if (!strcmp(command, "base")) { xmlShellBase(ctxt, NULL, ctxt->node, NULL); +#ifdef LIBXML_XPATH_ENABLED + } else if (!strcmp(command, "xpath")) { + if (arg[0] == 0) { + xmlGenericError(xmlGenericErrorContext, + "xpath: expression required\n"); + } else { + ctxt->pctxt->node = ctxt->node; + list = xmlXPathEval((xmlChar *) arg, ctxt->pctxt); + xmlXPathDebugDumpObject(stdout, list, 0); + xmlXPathFreeObject(list); + } +#endif /* LIBXML_XPATH_ENABLED */ } else if (!strcmp(command, "setbase")) { xmlShellSetBase(ctxt, arg, ctxt->node, NULL); } else if ((!strcmp(command, "ls")) || (!strcmp(command, "dir"))) { |