XmlWriter& startElement( std::string const& name ) { ensureTagClosed(); newlineIfNecessary(); stream() << m_indent << "<" << name; m_tags.push_back( name ); m_indent += " "; m_tagIsOpen = true; return *this; }
XmlWriter& writeText( std::string const& text, bool indent = true ) { if( !text.empty() ){ bool tagWasOpen = m_tagIsOpen; ensureTagClosed(); if( tagWasOpen && indent ) stream() << m_indent; writeEncodedText( text ); m_needsNewline = true; } return *this; }
XmlWriter& writeBlankLine() { ensureTagClosed(); stream() << "\n"; return *this; }
XmlWriter& writeComment( std::string const& text ) { ensureTagClosed(); stream() << m_indent << "<!--" << text << "-->"; m_needsNewline = true; return *this; }
XmlWriter& writeBlankLine() { ensureTagClosed(); m_os << '\n'; return *this; }