我正在将一些 DOMNode 从一个文档移动到另一个文档;这里的代码快照
XercesDOMParser *parser = new XercesDOMParser;
parser->setValidationScheme(XercesDOMParser::Val_Auto);
parser->setDoNamespaces(false);
parser->setDoSchema(false);
parser->setValidationSchemaFullChecking(false);
parser->setCreateEntityReferenceNodes(false);
// getDOMNodeForXMLString will pares the string and return the root DOMNode
DOMNode* vendorExtnDomNode = getDOMNodeForXMLString(*veField,parser);
DOMNodeList* childList = vendorExtnDomNode->getChildNodes();
if(childList)
{
DOMNode* childNode = NULL;
for(childNode = vendorExtnDomNode->getFirstChild();childNode != NULL;childNode = childNode->getNextSibling())
{
DOMElement* newChild = (DOMElement*) Doc->importNode(childNode,true);
veDomNode->appendChild(newChild);
}
}
parser->resetDocumentPool();
delete parser
如果 xml 字符串如下所示,则将其附加到 Doc
< my:root>
< my:values>
< my:value1>10< /my:value1>
< /my:values>
< /my:root>
但是如果字符串是这样的
< my:root>
< my:values>
< my:value1>10< /my:value1>
< my:enum>
< my:value2>10< /my:value1>
< /my:enum>
< /my:values>
< /my:root
然后我只能在 xml 转储中看到如下第一级层次结构字符串,为什么缺少重置
< my:root>
< my:values>
< my:value1>10< /my:value1>
< /my:values>
< /my:root>
注意:请忽略标签中的空格