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
11
tinyxml2.cpp
11
tinyxml2.cpp
|
@ -887,6 +887,17 @@ char* XMLNode::ParseDeep( char* p, StrPair* parentEnd )
|
|||
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();
|
||||
if ( ele ) {
|
||||
// We read the end tag. Return it to the parent.
|
||||
|
|
Loading…
Reference in New Issue