mirror of https://github.com/AxioDL/tinyxml2.git
Fix ParseDeep() to close issue #332
If the node to be added is an XML Declaration, then check if the document has any children already. XML Declarations can only be the FirstChild() s of an XML Document.
This commit is contained in:
parent
2bb6bb5bee
commit
a0f499dda1
13
tinyxml2.cpp
13
tinyxml2.cpp
|
@ -886,7 +886,18 @@ char* XMLNode::ParseDeep( char* p, StrPair* parentEnd )
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
XMLElement* ele = node->ToDeclaration();
|
||||||
|
if ( decl ) {
|
||||||
|
// A declaration can only be the first child of a document.
|
||||||
|
// Set error, if document already has children.
|
||||||
|
if ( ! _document->NoChildren() ) {
|
||||||
|
_document->SetError(XML_ERROR_PARSING_DECLARATION, decl->Value(), 0);
|
||||||
|
DeleteNode( decl );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
XMLElement* ele = node->ToElement();
|
XMLElement* ele = node->ToElement();
|
||||||
if ( ele ) {
|
if ( ele ) {
|
||||||
// We read the end tag. Return it to the parent.
|
// We read the end tag. Return it to the parent.
|
||||||
|
|
Loading…
Reference in New Issue