TiXmlPrinter Class Reference

#include <tinyxml.h>

Inheritance diagram for TiXmlPrinter:

TiXmlVisitor

List of all members.


Public Member Functions

 TiXmlPrinter ()
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 unknow node.
void SetIndent (const char *_indent)
const char * Indent ()
 Query the indention string.
void SetLineBreak (const char *_lineBreak)
const char * LineBreak ()
 Query the current line breaking string.
void SetStreamPrinting ()
const char * CStr ()
 Return the result.
size_t Size ()
 Return the length of the result string.
const std::string & Str ()
 Return the result.

Private Member Functions

void DoIndent ()
void DoLineBreak ()

Private Attributes

int depth
bool simpleTextPrint
TIXML_STRING buffer
TIXML_STRING indent
TIXML_STRING lineBreak

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 (  )  [inline]


Member Function Documentation

bool VisitEnter ( const TiXmlDocument  )  [virtual]

Visit a document.

Reimplemented from TiXmlVisitor.

bool VisitExit ( const TiXmlDocument  )  [virtual]

Visit a document.

Reimplemented from TiXmlVisitor.

bool VisitEnter ( const TiXmlElement ,
const TiXmlAttribute  
) [virtual]

Visit an element.

Reimplemented from TiXmlVisitor.

bool VisitExit ( const TiXmlElement  )  [virtual]

Visit an element.

Reimplemented from TiXmlVisitor.

bool Visit ( const TiXmlDeclaration  )  [virtual]

Visit a declaration.

Reimplemented from TiXmlVisitor.

bool Visit ( const TiXmlText  )  [virtual]

Visit a text node.

Reimplemented from TiXmlVisitor.

bool Visit ( const TiXmlComment  )  [virtual]

Visit a comment node.

Reimplemented from TiXmlVisitor.

bool Visit ( const TiXmlUnknown  )  [virtual]

Visit an unknow node.

Reimplemented from TiXmlVisitor.

void 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.

const char* Indent (  )  [inline]

Query the indention string.

void 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.

const char* LineBreak (  )  [inline]

Query the current line breaking string.

void SetStreamPrinting (  )  [inline]

Switch over to "stream printing" which is the most dense formatting without linebreaks. Common when the XML is needed for network transmission.

const char* CStr (  )  [inline]

Return the result.

size_t Size (  )  [inline]

Return the length of the result string.

const std::string& Str (  )  [inline]

Return the result.

void DoIndent (  )  [inline, private]

void DoLineBreak (  )  [inline, private]


Member Data Documentation

int depth [private]

bool simpleTextPrint [private]

TIXML_STRING buffer [private]

TIXML_STRING indent [private]

TIXML_STRING lineBreak [private]


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