# TiXmlPrinter Class Reference

Print to memory functionality. More...

`#include <tinyxml.h>`

Inheritance diagram for TiXmlPrinter:

List of all members.

## Public Member Functions

virtual bool | VisitEnter (const TiXmlDocument &doc)
| Visit a document.
virtual bool | VisitExit (const TiXmlDocument &doc)
| Visit a document.
virtual bool | VisitEnter (const TiXmlElement &element, const TiXmlAttribute *firstAttribute)
| Visit an element.
virtual bool | VisitExit (const TiXmlElement &element)
| Visit an element.
virtual bool | Visit (const TiXmlDeclaration &declaration)
| Visit a declaration.
virtual bool | Visit (const TiXmlText &text)
| Visit a text node.
virtual bool | Visit (const TiXmlComment &comment)
| Visit a comment node.
virtual bool | Visit (const TiXmlUnknown &unknown)
| Visit an unknown node.
void | SetIndent (const char *_indent)
| Set the indent characters for printing.
const char * | Indent ()
| Query the indention string.
void | SetLineBreak (const char *_lineBreak)
| Set the line breaking string.
const char * | LineBreak ()
| Query the current line breaking string.
void | SetStreamPrinting ()
| Switch over to "stream printing" which is the most dense formatting without linebreaks.
const char * | CStr ()
| Return the result.
size_t | Size ()
| Return the length of the result string.
const std::string & | Str ()
| Return the result.

## Detailed Description

Print to memory functionality.

The TiXmlPrinter is useful when you need to:

1. Print to memory (especially in non-STL mode)
2. Control formatting (line endings, etc.)

When constructed, the TiXmlPrinter is in its default "pretty printing" mode. Before calling Accept() you can call methods to control the printing of the XML document. After TiXmlNode::Accept() is called, the printed document can be accessed via the CStr(), Str(), and Size() methods.

TiXmlPrinter uses the Visitor API.

    	TiXmlPrinter printer;
    	printer.SetIndent( "\t" );

    	doc.Accept( &printer );
    	fprintf( stdout, "%s", printer.CStr() );

## Member Function Documentation

void TiXmlPrinter::SetIndent | ( | const char * | _indent | ) | `[inline]`

Set the indent characters for printing.

By default 4 spaces but tab () is also useful, or null/empty string for no indentation.

void TiXmlPrinter::SetLineBreak | ( | const char * | _lineBreak | ) | `[inline]`

Set the line breaking string.

By default set to newline (
). Some operating systems prefer other characters, or can be set to the null/empty string for no indenation.

void TiXmlPrinter::SetStreamPrinting | ( |  | ) | `[inline]`

Switch over to "stream printing" which is the most dense formatting without linebreaks.

Common when the XML is needed for network transmission.

The documentation for this class was generated from the following file:

- tinyxml.h