#

## Module debugXML from libxml2

API Menu

- Main Menu
- Developer Menu
- Code Examples
- API Menu
- Parser API
- Tree API
- Reader API
- XML Guidelines
- ChangeLog

API Indexes

- Alphabetic
- Constructors
- Functions/Types
- Modules
- Symbols

Related links

- Mail archive
- XSLT libxslt
- DOM gdome2
- XML-DSig xmlsec
- FTP
- Windows binaries
- Solaris binaries
- MacOsX binaries
- lxml Python bindings
- Perl bindings
- C++ bindings
- PHP bindings
- Pascal bindings
- Ruby bindings
- Tcl bindings
- Bug Tracker

Interfaces to a set of routines used for debugging the tree produced by the XML parser.

## Table of Contents

    Structure xmlShellCtxt
    struct _xmlShellCtxt

    Typedef xmlShellCtxt * xmlShellCtxtPtr

    const char *	xmlBoolToText		(int boolval)

    int	xmlDebugCheckDocument		(FILE * output,
    					 xmlDocPtr doc)

    void	xmlDebugDumpAttr		(FILE * output,
    					 xmlAttrPtr attr,
    					 int depth)

    void	xmlDebugDumpAttrList		(FILE * output,
    					 xmlAttrPtr attr,
    					 int depth)

    void	xmlDebugDumpDTD			(FILE * output,
    					 xmlDtdPtr dtd)

    void	xmlDebugDumpDocument		(FILE * output,
    					 xmlDocPtr doc)

    void	xmlDebugDumpDocumentHead	(FILE * output,
    					 xmlDocPtr doc)

    void	xmlDebugDumpEntities		(FILE * output,
    					 xmlDocPtr doc)

    void	xmlDebugDumpNode		(FILE * output,
    					 xmlNodePtr node,
    					 int depth)

    void	xmlDebugDumpNodeList		(FILE * output,
    					 xmlNodePtr node,
    					 int depth)

    void	xmlDebugDumpOneNode		(FILE * output,
    					 xmlNodePtr node,
    					 int depth)

    void	xmlDebugDumpString		(FILE * output,
    					 const xmlChar * str)

    int	xmlLsCountNode			(xmlNodePtr node)

    void	xmlLsOneNode			(FILE * output,
    					 xmlNodePtr node)

    void	xmlShell			(xmlDocPtr doc,
    					 char * filename,
    					 xmlShellReadlineFunc input,
    					 FILE * output)

    int	xmlShellBase			(xmlShellCtxtPtr ctxt,
    					 char * arg,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)

    int	xmlShellCat			(xmlShellCtxtPtr ctxt,
    					 char * arg,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)

    Function type: xmlShellCmd
    int	xmlShellCmd			(xmlShellCtxtPtr ctxt,
    					 char * arg,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)

    int	xmlShellDir			(xmlShellCtxtPtr ctxt,
    					 char * arg,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)

    int	xmlShellDu			(xmlShellCtxtPtr ctxt,
    					 char * arg,
    					 xmlNodePtr tree,
    					 xmlNodePtr node2)

    int	xmlShellList			(xmlShellCtxtPtr ctxt,
    					 char * arg,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)

    int	xmlShellLoad			(xmlShellCtxtPtr ctxt,
    					 char * filename,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)

    void	xmlShellPrintNode		(xmlNodePtr node)

    void	xmlShellPrintXPathError		(int errorType,
    					 const char * arg)

    void	xmlShellPrintXPathResult	(xmlXPathObjectPtr list)

    int	xmlShellPwd			(xmlShellCtxtPtr ctxt,
    					 char * buffer,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)

    Function type: xmlShellReadlineFunc
    char *	xmlShellReadlineFunc		(char * prompt)

    int	xmlShellSave			(xmlShellCtxtPtr ctxt,
    					 char * filename,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)

    int	xmlShellValidate		(xmlShellCtxtPtr ctxt,
    					 char * dtd,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)

    int	xmlShellWrite			(xmlShellCtxtPtr ctxt,
    					 char * filename,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)

## Description

### Structure xmlShellCtxt

    Structure xmlShellCtxt
    struct _xmlShellCtxt {
        char *	filename
        xmlDocPtr	doc
        xmlNodePtr	node
        xmlXPathContextPtr	pctxt
        int	loaded
        FILE *	output
        xmlShellReadlineFunc	input
    }

### Function: xmlBoolToText

    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"

### Function: xmlDebugCheckDocument

    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

### Function: xmlDebugDumpAttr

    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.

### Function: xmlDebugDumpAttrList

    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.

### Function: xmlDebugDumpDTD

    void	xmlDebugDumpDTD			(FILE * output,
    					 xmlDtdPtr dtd)

Dumps debug information for the DTD

`output`: | the FILE * for the output
`dtd`: | the DTD

### Function: xmlDebugDumpDocument

    void	xmlDebugDumpDocument		(FILE * output,
    					 xmlDocPtr doc)

Dumps debug information for the document, it's recursive

`output`: | the FILE * for the output
`doc`: | the document

### Function: xmlDebugDumpDocumentHead

    void	xmlDebugDumpDocumentHead	(FILE * output,
    					 xmlDocPtr doc)

Dumps debug information concerning the document, not recursive

`output`: | the FILE * for the output
`doc`: | the document

### Function: xmlDebugDumpEntities

    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

### Function: xmlDebugDumpNode

    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.

### Function: xmlDebugDumpNodeList

    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.

### Function: xmlDebugDumpOneNode

    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.

### Function: xmlDebugDumpString

    void	xmlDebugDumpString		(FILE * output,
    					 const xmlChar * str)

Dumps information about the string, shorten it if necessary

`output`: | the FILE * for the output
`str`: | the string

### Function: xmlLsCountNode

    int	xmlLsCountNode			(xmlNodePtr node)

Count the children of @node.

`node`: | the node to count
`Returns`: | the number of children of @node.

### Function: xmlLsOneNode

    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

### Function: xmlShell

    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

### Function: xmlShellBase

    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

### Function: xmlShellCat

    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

### Function type: xmlShellCmd

    Function type: xmlShellCmd
    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.

### Function: xmlShellDir

    int	xmlShellDir			(xmlShellCtxtPtr ctxt,
    					 char * arg,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)

Implements the XML shell function "dir" dumps information about the node (namespace, attributes, content).

`ctxt`: | the shell context
`arg`: | unused
`node`: | a node
`node2`: | unused
`Returns`: | 0

### Function: xmlShellDu

    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

### Function: xmlShellList

    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

### Function: xmlShellLoad

    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

### Function: xmlShellPrintNode

    void	xmlShellPrintNode		(xmlNodePtr node)

Print node to the output FILE

`node`: | a non-null node to print to the output FILE

### Function: xmlShellPrintXPathError

    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

### Function: xmlShellPrintXPathResult

    void	xmlShellPrintXPathResult	(xmlXPathObjectPtr list)

Prints result to the output FILE

`list`: | a valid result generated by an xpath evaluation

### Function: xmlShellPwd

    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

### Function type: xmlShellReadlineFunc

    Function type: xmlShellReadlineFunc
    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.

### Function: xmlShellSave

    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

### Function: xmlShellValidate

    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

### Function: xmlShellWrite

    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

Daniel Veillard