|
|
|
|
|
libxml2 Reference Manual |
|---|
debugXML - Tree debugging APIs
Interfaces to a set of routines used for debugging the tree produced by the XML parser.
Author(s): Daniel Veillard
typedef struct _xmlShellCtxt xmlShellCtxt; typedef xmlShellCtxt * xmlShellCtxtPtr; void xmlDebugDumpAttrList (FILE * output,
xmlAttrPtr attr,
int depth); void xmlLsOneNode (FILE * output,
xmlNodePtr node); typedef char * xmlShellReadlineFunc (char * prompt); int xmlShellSave (xmlShellCtxtPtr ctxt,
char * filename,
xmlNodePtr node,
xmlNodePtr node2); const char * xmlBoolToText (int boolval); int xmlShellWrite (xmlShellCtxtPtr ctxt,
char * filename,
xmlNodePtr node,
xmlNodePtr node2); int xmlShellDu (xmlShellCtxtPtr ctxt,
char * arg,
xmlNodePtr tree,
xmlNodePtr node2); int xmlShellValidate (xmlShellCtxtPtr ctxt,
char * dtd,
xmlNodePtr node,
xmlNodePtr node2); int xmlDebugCheckDocument (FILE * output,
xmlDocPtr doc); void xmlShellPrintXPathResult (xmlXPathObjectPtr list); typedef int xmlShellCmd (xmlShellCtxtPtr ctxt,
char * arg,
xmlNodePtr node,
xmlNodePtr node2); int xmlShellLoad (xmlShellCtxtPtr ctxt,
char * filename,
xmlNodePtr node,
xmlNodePtr node2); void xmlDebugDumpString (FILE * output,
const xmlChar * str); int xmlShellBase (xmlShellCtxtPtr ctxt,
char * arg,
xmlNodePtr node,
xmlNodePtr node2); int xmlShellCat (xmlShellCtxtPtr ctxt,
char * arg,
xmlNodePtr node,
xmlNodePtr node2); void xmlDebugDumpDTD (FILE * output,
xmlDtdPtr dtd); void xmlDebugDumpNode (FILE * output,
xmlNodePtr node,
int depth); void xmlDebugDumpEntities (FILE * output,
xmlDocPtr doc); void xmlShellPrintNode (xmlNodePtr node); int xmlShellPwd (xmlShellCtxtPtr ctxt,
char * buffer,
xmlNodePtr node,
xmlNodePtr node2); void xmlDebugDumpNodeList (FILE * output,
xmlNodePtr node,
int depth); void xmlDebugDumpAttr (FILE * output,
xmlAttrPtr attr,
int depth); void xmlDebugDumpDocument (FILE * output,
xmlDocPtr doc); int xmlLsCountNode (xmlNodePtr node); void xmlShellPrintXPathError (int errorType,
const char * arg); int xmlShellDir (xmlShellCtxtPtr ctxt,
char * arg,
xmlNodePtr node,
xmlNodePtr node2); void xmlDebugDumpOneNode (FILE * output,
xmlNodePtr node,
int depth); int xmlShellList (xmlShellCtxtPtr ctxt,
char * arg,
xmlNodePtr node,
xmlNodePtr node2); void xmlDebugDumpDocumentHead (FILE * output,
xmlDocPtr doc); void xmlShell (xmlDocPtr doc,
char * filename,
xmlShellReadlineFunc input,
FILE * output);
struct _xmlShellCtxt {
char * filename
xmlDocPtr doc
xmlNodePtr node
xmlXPathContextPtr pctxt
int loaded
FILE * output
xmlShellReadlineFunc input
} xmlShellCtxt;
xmlShellCtxt * xmlShellCtxtPtr;
int xmlShellCmd (xmlShellCtxtPtr ctxt,
char * arg,
xmlNodePtr node,
xmlNodePtr node2)
This is a generic signature for the XML shell functions.
| ctxt: | a shell context |
| arg: | a string argument |
| node: | a first node |
| node2: | a second node |
| Returns: | an int, negative returns indicating errors. |
char * xmlShellReadlineFunc (char * prompt)
This is a generic signature for the XML shell input function.
| prompt: | a string prompt |
| Returns: | a string which will be freed by the Shell. |
const char * xmlBoolToText (int boolval)
Convenient way to turn bool into text
| boolval: | a bool to turn into text |
| Returns: | a pointer to either "True" or "False" |
int xmlDebugCheckDocument (FILE * output,
xmlDocPtr doc)
Check the document for potential content problems, and output the errors to @output
| output: | the FILE * for the output |
| doc: | the document |
| Returns: | the number of errors found |
void xmlDebugDumpAttr (FILE * output,
xmlAttrPtr attr,
int depth)
Dumps debug information for the attribute
| output: | the FILE * for the output |
| attr: | the attribute |
| depth: | the indentation level. |
void xmlDebugDumpAttrList (FILE * output,
xmlAttrPtr attr,
int depth)
Dumps debug information for the attribute list
| output: | the FILE * for the output |
| attr: | the attribute list |
| depth: | the indentation level. |
void xmlDebugDumpDTD (FILE * output,
xmlDtdPtr dtd)
Dumps debug information for the DTD
| output: | the FILE * for the output |
| dtd: | the DTD |
void xmlDebugDumpDocument (FILE * output,
xmlDocPtr doc)
Dumps debug information for the document, it's recursive
| output: | the FILE * for the output |
| doc: | the document |
void xmlDebugDumpDocumentHead (FILE * output,
xmlDocPtr doc)
Dumps debug information cncerning the document, not recursive
| output: | the FILE * for the output |
| doc: | the document |
void xmlDebugDumpEntities (FILE * output,
xmlDocPtr doc)
Dumps debug information for all the entities in use by the document
| output: | the FILE * for the output |
| doc: | the document |
void xmlDebugDumpNode (FILE * output,
xmlNodePtr node,
int depth)
Dumps debug information for the element node, it is recursive
| output: | the FILE * for the output |
| node: | the node |
| depth: | the indentation level. |
void xmlDebugDumpNodeList (FILE * output,
xmlNodePtr node,
int depth)
Dumps debug information for the list of element node, it is recursive
| output: | the FILE * for the output |
| node: | the node list |
| depth: | the indentation level. |
void xmlDebugDumpOneNode (FILE * output,
xmlNodePtr node,
int depth)
Dumps debug information for the element node, it is not recursive
| output: | the FILE * for the output |
| node: | the node |
| depth: | the indentation level. |
void xmlDebugDumpString (FILE * output,
const xmlChar * str)
Dumps informations about the string, shorten it if necessary
| output: | the FILE * for the output |
| str: | the string |
int xmlLsCountNode (xmlNodePtr node)
Count the children of @node.
| node: | the node to count |
| Returns: | the number of children of @node. |
void xmlLsOneNode (FILE * output,
xmlNodePtr node)
Dump to @output the type and name of @node.
| output: | the FILE * for the output |
| node: | the node to dump |
void xmlShell (xmlDocPtr doc,
char * filename,
xmlShellReadlineFunc input,
FILE * output)
Implements the XML shell This allow to load, validate, view, modify and save a document using a environment similar to a UNIX commandline.
| doc: | the initial document |
| filename: | the output buffer |
| input: | the line reading function |
| output: | the output FILE*, defaults to stdout if NULL |
int xmlShellBase (xmlShellCtxtPtr ctxt,
char * arg,
xmlNodePtr node,
xmlNodePtr node2)
Implements the XML shell function "base" dumps the current XML base of the node
| ctxt: | the shell context |
| arg: | unused |
| node: | a node |
| node2: | unused |
| Returns: | 0 |
int xmlShellCat (xmlShellCtxtPtr ctxt,
char * arg,
xmlNodePtr node,
xmlNodePtr node2)
Implements the XML shell function "cat" dumps the serialization node content (XML or HTML).
| ctxt: | the shell context |
| arg: | unused |
| node: | a node |
| node2: | unused |
| Returns: | 0 |
int xmlShellDir (xmlShellCtxtPtr ctxt,
char * arg,
xmlNodePtr node,
xmlNodePtr node2)
Implements the XML shell function "dir" dumps informations about the node (namespace, attributes, content).
| ctxt: | the shell context |
| arg: | unused |
| node: | a node |
| node2: | unused |
| Returns: | 0 |
int xmlShellDu (xmlShellCtxtPtr ctxt,
char * arg,
xmlNodePtr tree,
xmlNodePtr node2)
Implements the XML shell function "du" show the structure of the subtree under node @tree If @tree is null, the command works on the current node.
| ctxt: | the shell context |
| arg: | unused |
| tree: | a node defining a subtree |
| node2: | unused |
| Returns: | 0 or -1 in case of error |
int xmlShellList (xmlShellCtxtPtr ctxt,
char * arg,
xmlNodePtr node,
xmlNodePtr node2)
Implements the XML shell function "ls" Does an Unix like listing of the given node (like a directory)
| ctxt: | the shell context |
| arg: | unused |
| node: | a node |
| node2: | unused |
| Returns: | 0 |
int xmlShellLoad (xmlShellCtxtPtr ctxt,
char * filename,
xmlNodePtr node,
xmlNodePtr node2)
Implements the XML shell function "load" loads a new document specified by the filename
| ctxt: | the shell context |
| filename: | the file name |
| node: | unused |
| node2: | unused |
| Returns: | 0 or -1 if loading failed |
void xmlShellPrintNode (xmlNodePtr node)
Print node to the output FILE
| node: | a non-null node to print to the output FILE |
void xmlShellPrintXPathError (int errorType,
const char * arg)
Print the xpath error to libxml default error channel
| errorType: | valid xpath error id |
| arg: | the argument that cause xpath to fail |
void xmlShellPrintXPathResult (xmlXPathObjectPtr list)
Prints result to the output FILE
| list: | a valid result generated by an xpath evaluation |
int xmlShellPwd (xmlShellCtxtPtr ctxt,
char * buffer,
xmlNodePtr node,
xmlNodePtr node2)
Implements the XML shell function "pwd" Show the full path from the root to the node, if needed building thumblers when similar elements exists at a given ancestor level. The output is compatible with XPath commands.
| ctxt: | the shell context |
| buffer: | the output buffer |
| node: | a node |
| node2: | unused |
| Returns: | 0 or -1 in case of error |
int xmlShellSave (xmlShellCtxtPtr ctxt,
char * filename,
xmlNodePtr node,
xmlNodePtr node2)
Implements the XML shell function "save" Write the current document to the filename, or it's original name
| ctxt: | the shell context |
| filename: | the file name (optional) |
| node: | unused |
| node2: | unused |
| Returns: | 0 or -1 in case of error |
int xmlShellValidate (xmlShellCtxtPtr ctxt,
char * dtd,
xmlNodePtr node,
xmlNodePtr node2)
Implements the XML shell function "validate" Validate the document, if a DTD path is provided, then the validation is done against the given DTD.
| ctxt: | the shell context |
| dtd: | the DTD URI (optional) |
| node: | unused |
| node2: | unused |
| Returns: | 0 or -1 in case of error |
int xmlShellWrite (xmlShellCtxtPtr ctxt,
char * filename,
xmlNodePtr node,
xmlNodePtr node2)
Implements the XML shell function "write" Write the current node to the filename, it saves the serialization of the subtree under the @node specified
| ctxt: | the shell context |
| filename: | the file name |
| node: | a node in the tree |
| node2: | unused |
| Returns: | 0 or -1 in case of error |