简短版本:XercesDOMParser* a和在他们用来创建 DOMDocument*的 a 之前超出范围 是否安全?DOMElement*
长版:
在下面的代码片段中,我创建了一个本地XercesDOMParser*和DOMDocument*以获取文档的根元素并将其存储在成员 DOMElement*变量中。XercesDOMParser*和都在DOMDocument*构造函数的末尾超出范围,但 DOMElement*作为成员变量存在。这个可以吗?到目前为止,它似乎有效,但我很紧张我以后可能会遇到问题。
JNIRequest::JNIRequest(JNIEnv *env, jobject obj, jstring input)
{
char *szInputXML = (char*) env->GetStringUTFChars(input, NULL);
XMLPlatformUtils::Initialize();
XercesDOMParser* pParser = new XercesDOMParser();
XMLByte* xmlByteInput = (XMLByte*) szInputXML;
xercesc::MemBufInputSource source(xmlByteInput, strlen(szInputXML), "BufferID");
pParser->parse(source);
DOMDocument* pDocument = pParser->getDocument();
/* This next variable is a DOMElement* */
this->_pRootElement = pDocument->getDocumentElement();
}