Orxonox: TiXmlPrinter Class Reference

# TiXmlPrinter Class Reference

`#include <src/tinyxml/tinyxml.h>`

Inheritance diagram for TiXmlPrinter:

List of all members.

## Public Member Functions

const char * | CStr ()
| Return the result.
const char * | Indent ()
| Query the indention string.
const char * | LineBreak ()
| Query the current line breaking string.
void | SetIndent (const char *_indent)
void | SetLineBreak (const char *_lineBreak)
void | SetStreamPrinting ()
size_t | Size ()
| Return the length of the result string.
| TiXmlPrinter ()
virtual bool | Visit (const TiXmlUnknown &unknown)
| Visit an unknow node.
virtual bool | Visit (const TiXmlComment &comment)
| Visit a comment node.
virtual bool | Visit (const TiXmlText &text)
| Visit a text node.
virtual bool | Visit (const TiXmlDeclaration &declaration)
| Visit a declaration.
virtual bool | VisitEnter (const TiXmlElement &element, const TiXmlAttribute *firstAttribute)
| Visit an element.
virtual bool | VisitEnter (const TiXmlDocument &doc)
| Visit a document.
virtual bool | VisitExit (const TiXmlElement &element)
| Visit an element.
virtual bool | VisitExit (const TiXmlDocument &doc)
| Visit a document.

## Private Member Functions

void | DoIndent ()
void | DoLineBreak ()

## Private Attributes

TIXML_STRING | buffer
int | depth
TIXML_STRING | indent
TIXML_STRING | lineBreak
bool | simpleTextPrint

## 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() );

## Constructor & Destructor Documentation

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

## Member Function Documentation

const char* TiXmlPrinter::CStr | ( |  | ) | `[inline]`

Return the result.

References buffer.

void TiXmlPrinter::DoIndent | ( |  | ) | `[inline, private]`

References buffer, depth, and indent.

Referenced by Visit(), VisitEnter(), and VisitExit().

void TiXmlPrinter::DoLineBreak | ( |  | ) | `[inline, private]`

References buffer, and lineBreak.

Referenced by Visit(), VisitEnter(), and VisitExit().

const char* TiXmlPrinter::Indent | ( |  | ) | `[inline]`

Query the indention string.

References indent.

const char* TiXmlPrinter::LineBreak | ( |  | ) | `[inline]`

Query the current line breaking string.

References lineBreak.

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.

References indent.

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.

References lineBreak.

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.

References indent, and lineBreak.

size_t TiXmlPrinter::Size | ( |  | ) | `[inline]`

Return the length of the result string.

References buffer.

bool TiXmlPrinter::Visit | ( | const TiXmlUnknown & |  | ) | `[virtual]`

Visit an unknow node.

Reimplemented from TiXmlVisitor.

References buffer, DoIndent(), DoLineBreak(), and TiXmlNode::Value().

bool TiXmlPrinter::Visit | ( | const TiXmlComment & |  | ) | `[virtual]`

Visit a comment node.

Reimplemented from TiXmlVisitor.

References buffer, DoIndent(), DoLineBreak(), and TiXmlNode::Value().

bool TiXmlPrinter::Visit | ( | const TiXmlText & |  | ) | `[virtual]`

Visit a text node.

Reimplemented from TiXmlVisitor.

References buffer, TiXmlText::CDATA(), DoIndent(), DoLineBreak(), TiXmlBase::EncodeString(), simpleTextPrint, TIXML_STRING, TiXmlNode::Value(), and TiXmlNode::ValueTStr().

bool TiXmlPrinter::Visit | ( | const TiXmlDeclaration & |  | ) | `[virtual]`

Visit a declaration.

Reimplemented from TiXmlVisitor.

References buffer, DoIndent(), DoLineBreak(), and TiXmlDeclaration::Print().

bool TiXmlPrinter::VisitEnter | ( | const TiXmlElement & | ,
|  | const TiXmlAttribute * |  |
| ) |  |  | `[virtual]`

Visit an element.

Reimplemented from TiXmlVisitor.

References buffer, TiXmlText::CDATA(), depth, DoIndent(), DoLineBreak(), TiXmlNode::FirstChild(), TiXmlNode::LastChild(), TiXmlAttribute::Next(), TiXmlAttribute::Print(), simpleTextPrint, TiXmlNode::ToText(), and TiXmlNode::Value().

bool TiXmlPrinter::VisitEnter | ( | const TiXmlDocument & |  | ) | `[virtual]`

Visit a document.

Reimplemented from TiXmlVisitor.

bool TiXmlPrinter::VisitExit | ( | const TiXmlElement & |  | ) | `[virtual]`

Visit an element.

Reimplemented from TiXmlVisitor.

References buffer, depth, DoIndent(), DoLineBreak(), TiXmlNode::FirstChild(), simpleTextPrint, and TiXmlNode::Value().

bool TiXmlPrinter::VisitExit | ( | const TiXmlDocument & |  | ) | `[virtual]`

Visit a document.

Reimplemented from TiXmlVisitor.

## Member Data Documentation

TIXML_STRING TiXmlPrinter::buffer`[private]`

Referenced by CStr(), DoIndent(), DoLineBreak(), Size(), Visit(), VisitEnter(), and VisitExit().

int TiXmlPrinter::depth`[private]`

Referenced by DoIndent(), VisitEnter(), and VisitExit().

TIXML_STRING TiXmlPrinter::indent`[private]`

Referenced by DoIndent(), Indent(), SetIndent(), and SetStreamPrinting().

TIXML_STRING TiXmlPrinter::lineBreak`[private]`

Referenced by DoLineBreak(), LineBreak(), SetLineBreak(), and SetStreamPrinting().

bool TiXmlPrinter::simpleTextPrint`[private]`

Referenced by Visit(), VisitEnter(), and VisitExit().

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

- src/tinyxml/tinyxml.h
- src/tinyxml/tinyxml.cpp