|
@@ -2069,9 +2069,7 @@ void XMLPrinter::PushHeader( bool writeBOM, bool writeDec )
|
|
|
|
|
|
|
|
void XMLPrinter::OpenElement( const char* name, bool compactMode )
|
|
void XMLPrinter::OpenElement( const char* name, bool compactMode )
|
|
|
{
|
|
{
|
|
|
- if ( _elementJustOpened ) {
|
|
|
|
|
- SealElement();
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ SealElementIfJustOpened();
|
|
|
_stack.Push( name );
|
|
_stack.Push( name );
|
|
|
|
|
|
|
|
if ( _textDepth < 0 && !_firstElement && !compactMode ) {
|
|
if ( _textDepth < 0 && !_firstElement && !compactMode ) {
|
|
@@ -2155,8 +2153,11 @@ void XMLPrinter::CloseElement( bool compactMode )
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
-void XMLPrinter::SealElement()
|
|
|
|
|
|
|
+void XMLPrinter::SealElementIfJustOpened()
|
|
|
{
|
|
{
|
|
|
|
|
+ if ( !_elementJustOpened ) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
_elementJustOpened = false;
|
|
_elementJustOpened = false;
|
|
|
Print( ">" );
|
|
Print( ">" );
|
|
|
}
|
|
}
|
|
@@ -2166,9 +2167,7 @@ void XMLPrinter::PushText( const char* text, bool cdata )
|
|
|
{
|
|
{
|
|
|
_textDepth = _depth-1;
|
|
_textDepth = _depth-1;
|
|
|
|
|
|
|
|
- if ( _elementJustOpened ) {
|
|
|
|
|
- SealElement();
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ SealElementIfJustOpened();
|
|
|
if ( cdata ) {
|
|
if ( cdata ) {
|
|
|
Print( "<![CDATA[" );
|
|
Print( "<![CDATA[" );
|
|
|
Print( "%s", text );
|
|
Print( "%s", text );
|
|
@@ -2221,9 +2220,7 @@ void XMLPrinter::PushText( double value )
|
|
|
|
|
|
|
|
void XMLPrinter::PushComment( const char* comment )
|
|
void XMLPrinter::PushComment( const char* comment )
|
|
|
{
|
|
{
|
|
|
- if ( _elementJustOpened ) {
|
|
|
|
|
- SealElement();
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ SealElementIfJustOpened();
|
|
|
if ( _textDepth < 0 && !_firstElement && !_compactMode) {
|
|
if ( _textDepth < 0 && !_firstElement && !_compactMode) {
|
|
|
Print( "\n" );
|
|
Print( "\n" );
|
|
|
PrintSpace( _depth );
|
|
PrintSpace( _depth );
|
|
@@ -2235,9 +2232,7 @@ void XMLPrinter::PushComment( const char* comment )
|
|
|
|
|
|
|
|
void XMLPrinter::PushDeclaration( const char* value )
|
|
void XMLPrinter::PushDeclaration( const char* value )
|
|
|
{
|
|
{
|
|
|
- if ( _elementJustOpened ) {
|
|
|
|
|
- SealElement();
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ SealElementIfJustOpened();
|
|
|
if ( _textDepth < 0 && !_firstElement && !_compactMode) {
|
|
if ( _textDepth < 0 && !_firstElement && !_compactMode) {
|
|
|
Print( "\n" );
|
|
Print( "\n" );
|
|
|
PrintSpace( _depth );
|
|
PrintSpace( _depth );
|
|
@@ -2249,9 +2244,7 @@ void XMLPrinter::PushDeclaration( const char* value )
|
|
|
|
|
|
|
|
void XMLPrinter::PushUnknown( const char* value )
|
|
void XMLPrinter::PushUnknown( const char* value )
|
|
|
{
|
|
{
|
|
|
- if ( _elementJustOpened ) {
|
|
|
|
|
- SealElement();
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ SealElementIfJustOpened();
|
|
|
if ( _textDepth < 0 && !_firstElement && !_compactMode) {
|
|
if ( _textDepth < 0 && !_firstElement && !_compactMode) {
|
|
|
Print( "\n" );
|
|
Print( "\n" );
|
|
|
PrintSpace( _depth );
|
|
PrintSpace( _depth );
|