|
osgEarth 2.1.1
|
#include <tinyxml.h>
Inheritance diagram for TiXmlPrinter:
Collaboration diagram for TiXmlPrinter: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. | |
Private Member Functions | |
| void | DoIndent () |
| void | DoLineBreak () |
Private Attributes | |
| int | depth |
| bool | simpleTextPrint |
| TIXML_STRING | buffer |
| TIXML_STRING | indent |
| TIXML_STRING | lineBreak |
Print to memory functionality. The TiXmlPrinter is useful when you need to:
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() );
| TiXmlPrinter::TiXmlPrinter | ( | ) | [inline] |
| const char* TiXmlPrinter::CStr | ( | ) | [inline] |
| void TiXmlPrinter::DoIndent | ( | ) | [inline, private] |
| void TiXmlPrinter::DoLineBreak | ( | ) | [inline, private] |
| const char* TiXmlPrinter::Indent | ( | ) | [inline] |
| const char* TiXmlPrinter::LineBreak | ( | ) | [inline] |
| void TiXmlPrinter::SetIndent | ( | const char * | _indent | ) | [inline] |
| void TiXmlPrinter::SetLineBreak | ( | const char * | _lineBreak | ) | [inline] |
| void TiXmlPrinter::SetStreamPrinting | ( | ) | [inline] |
| size_t TiXmlPrinter::Size | ( | ) | [inline] |
| bool TiXmlPrinter::Visit | ( | const TiXmlUnknown & | ) | [virtual] |
Visit an unknow node.
Reimplemented from TiXmlVisitor.
Definition at line 1830 of file tinyxml.cpp.
{
DoIndent();
buffer += "<";
buffer += unknown.Value();
buffer += ">";
DoLineBreak();
return true;
}
Here is the call graph for this function:| bool TiXmlPrinter::Visit | ( | const TiXmlText & | ) | [virtual] |
Visit a text node.
Reimplemented from TiXmlVisitor.
Definition at line 1782 of file tinyxml.cpp.
{
if ( text.CDATA() )
{
DoIndent();
buffer += "<![CDATA[";
buffer += text.Value();
buffer += "]]>";
DoLineBreak();
}
else if ( simpleTextPrint )
{
TIXML_STRING str;
TiXmlBase::EncodeString( text.ValueTStr(), &str );
buffer += str;
}
else
{
DoIndent();
TIXML_STRING str;
TiXmlBase::EncodeString( text.ValueTStr(), &str );
buffer += str;
DoLineBreak();
}
return true;
}
Here is the call graph for this function:| bool TiXmlPrinter::Visit | ( | const TiXmlDeclaration & | ) | [virtual] |
Visit a declaration.
Reimplemented from TiXmlVisitor.
Definition at line 1810 of file tinyxml.cpp.
{
DoIndent();
declaration.Print( 0, 0, &buffer );
DoLineBreak();
return true;
}
Here is the call graph for this function:| bool TiXmlPrinter::Visit | ( | const TiXmlComment & | ) | [virtual] |
Visit a comment node.
Reimplemented from TiXmlVisitor.
Definition at line 1819 of file tinyxml.cpp.
{
DoIndent();
buffer += "<!--";
buffer += comment.Value();
buffer += "-->";
DoLineBreak();
return true;
}
Here is the call graph for this function:| bool TiXmlPrinter::VisitEnter | ( | const TiXmlDocument & | ) | [virtual] |
Visit a document.
Reimplemented from TiXmlVisitor.
Definition at line 1709 of file tinyxml.cpp.
{
return true;
}
| bool TiXmlPrinter::VisitEnter | ( | const TiXmlElement & | , |
| const TiXmlAttribute * | |||
| ) | [virtual] |
Visit an element.
Reimplemented from TiXmlVisitor.
Definition at line 1719 of file tinyxml.cpp.
{
DoIndent();
buffer += "<";
buffer += element.Value();
for( const TiXmlAttribute* attrib = firstAttribute; attrib; attrib = attrib->Next() )
{
buffer += " ";
attrib->Print( 0, 0, &buffer );
}
if ( !element.FirstChild() )
{
buffer += " />";
DoLineBreak();
}
else
{
buffer += ">";
if ( element.FirstChild()->ToText()
&& element.LastChild() == element.FirstChild()
&& element.FirstChild()->ToText()->CDATA() == false )
{
simpleTextPrint = true;
// no DoLineBreak()!
}
else
{
DoLineBreak();
}
}
++depth;
return true;
}
Here is the call graph for this function:| bool TiXmlPrinter::VisitExit | ( | const TiXmlDocument & | ) | [virtual] |
Visit a document.
Reimplemented from TiXmlVisitor.
Definition at line 1714 of file tinyxml.cpp.
{
return true;
}
| bool TiXmlPrinter::VisitExit | ( | const TiXmlElement & | ) | [virtual] |
Visit an element.
Reimplemented from TiXmlVisitor.
Definition at line 1756 of file tinyxml.cpp.
{
--depth;
if ( !element.FirstChild() )
{
// nothing.
}
else
{
if ( simpleTextPrint )
{
simpleTextPrint = false;
}
else
{
DoIndent();
}
buffer += "</";
buffer += element.Value();
buffer += ">";
DoLineBreak();
}
return true;
}
Here is the call graph for this function:TIXML_STRING TiXmlPrinter::buffer [private] |
int TiXmlPrinter::depth [private] |
TIXML_STRING TiXmlPrinter::indent [private] |
TIXML_STRING TiXmlPrinter::lineBreak [private] |
bool TiXmlPrinter::simpleTextPrint [private] |
1.7.3