ixml.c File Reference
`#include "ixmldebug.h"`
`#include "ixmlmembuf.h"`
`#include "ixmlparser.h"`
`#include <stdlib.h>`
`#include <string.h>`
`#include "posix_overwrites.h"`
Include dependency graph for ixml.c:

## Functions

static void | copy_with_escape (ixml_membuf *buf, const char *p)
| Appends a string to a buffer, substituting some characters by escape sequences.
static void | ixmlPrintDomTreeRecursive (IXML_Node *nodeptr, ixml_membuf *buf)
| Recursive function to print all the node in a tree. Internal to parser only.
static void | ixmlPrintDomTree (IXML_Node *nodeptr, ixml_membuf *buf)
| Print a DOM tree.
static void | ixmlDomTreetoString (IXML_Node *nodeptr, ixml_membuf *buf)
| Converts a DOM tree into a text string.
int | ixmlLoadDocumentEx (const char *xmlFile, IXML_Document **doc)
| Parses an XML text file converting it into an IXML DOM representation.
IXML_Document * | ixmlLoadDocument (const char *xmlFile)
| Parses an XML text file converting it into an IXML DOM representation.
DOMString | ixmlPrintDocument (IXML_Document *doc)
| Renders a Node and all sub-elements into an XML document representation.
DOMString | ixmlPrintNode (IXML_Node *node)
| Renders a Node and all sub-elements into an XML text representation.
DOMString | ixmlDocumenttoString (IXML_Document *doc)
| Renders a Node and all sub-elements into an XML document representation.
DOMString | ixmlNodetoString (IXML_Node *node)
| Renders a Node and all sub-elements into an XML text representation. The caller is required to free the DOMString returned from this function using ixmlFreeDOMString when it is no longer required.
void | ixmlRelaxParser (char errorChar)
| Makes the XML parser more tolerant to malformed text.
int | ixmlParseBufferEx (const char *buffer, IXML_Document **retDoc)
| Parses an XML text buffer converting it into an IXML DOM representation.
IXML_Document * | ixmlParseBuffer (const char *buffer)
| Parses an XML text buffer converting it into an IXML DOM representation.
DOMString | ixmlCloneDOMString (const DOMString src)
void | ixmlFreeDOMString (DOMString buf)

## Function Documentation

## copy_with_escape()

static void copy_with_escape | ( | ixml_membuf * | buf,
|  | const char * | p
| ) |  |

static

Appends a string to a buffer, substituting some characters by escape sequences.

Parameters

  [in,out] | buf | The input/output buffer.
  [in] | p | The string to copy from.

References ixml_membuf_append(), and ixml_membuf_append_str().

Referenced by ixmlDomTreetoString(), ixmlPrintDomTree(), and ixmlPrintDomTreeRecursive().

## ixmlDomTreetoString()

static void ixmlDomTreetoString | ( | IXML_Node * | nodeptr,
|  | ixml_membuf * | buf
| ) |  |

static

Converts a DOM tree into a text string.

Element, and Attribute nodes are handled differently. We don't want to print the Element and Attribute nodes' sibling.

Parameters

  [in] | nodeptr |

Todo:
  documentation.

Parameters

  [in] | buf |

Todo:
  documentation.

References copy_with_escape(), ixml_membuf_append_str(), ixmlNode_getFirstChild(), ixmlNode_getNodeName(), ixmlNode_getNodeType(), ixmlNode_getNodeValue(), ixmlPrintDomTreeRecursive(), and IxmlPrintf().

Referenced by ixmlDocumenttoString(), and ixmlNodetoString().

## ixmlPrintDomTree()

static void ixmlPrintDomTree | ( | IXML_Node * | nodeptr,
|  | ixml_membuf * | buf
| ) |  |

static

Print a DOM tree.

Element, and Attribute nodes are handled differently. We don't want to print the Element and Attribute nodes' sibling.

Parameters

  [in] | nodeptr |

Todo:
  documentation.

Parameters

  [in] | buf |

Todo:
  documentation.

References copy_with_escape(), ixml_membuf_append_str(), ixmlNode_getFirstChild(), ixmlNode_getNodeName(), ixmlNode_getNodeType(), ixmlNode_getNodeValue(), ixmlPrintDomTreeRecursive(), and IxmlPrintf().

Referenced by ixmlPrintDocument(), and ixmlPrintNode().

## ixmlPrintDomTreeRecursive()

static void ixmlPrintDomTreeRecursive | ( | IXML_Node * | nodeptr,
|  | ixml_membuf * | buf
| ) |  |

static

Recursive function to print all the node in a tree. Internal to parser only.

Parameters

  [in] | nodeptr |

Todo:
  documentation.

Parameters

  [in] | buf |

Todo:
  documentation.

References copy_with_escape(), ixml_membuf_append_str(), ixmlNode_getFirstChild(), ixmlNode_getNextSibling(), ixmlNode_getNodeName(), ixmlNode_getNodeType(), ixmlNode_getNodeValue(), ixmlPrintDomTreeRecursive(), and IxmlPrintf().

Referenced by ixmlDomTreetoString(), ixmlPrintDomTree(), and ixmlPrintDomTreeRecursive().