简短版本: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();
}