내 XML 파일의 루트 요소가 내 프로그램의 생성자에 QDomElement
이어야합니다.파일이 없으면 XML 파일을 읽거나 루트 요소로 새 파일을 만듭니다.
이 경우 프로그램은 먼저 파일을 읽으려고합니다. 파일을 읽을 수 없으면 루트 요소를 사용하여 새 파일을 만듭니다. 이 후 내 파일의 루트 요소를 얻습니다.
bool hadToCreateXML=false;
bool wasLoadedCorrectly=false;
fileXML.setFileName("C:/logs.xml");
if(!fileXML.open(QIODevice::ReadOnly | QIODevice::Text)){
cout << "fail open, file does not exsist?" << endl;
if(!fileXML.open(QIODevice::WriteOnly | QIODevice::Text)){
cout << "failed creating file" << endl;
}
else{
ui->outputText->append("First time running");
hadToCreateXML=true;
QDomDocument tempFirstTime;
tempFirstTime.setContent(&fileXML);
tempFirstTime.createElement("MyRoot");
QTextStream stream(&fileXML);
stream << tempFirstTime.toString();
fileXML.close();
}
}
else wasLoadedCorrectly=true;
if(hadToCreateXML||wasLoadedCorrectly){
if(!documentXML.setContent(&fileXML)){
cout << "failed to load doc" << endl;
}
else {
rootXML=documentXML.firstChildElement();
fileXML.close();
}
}
그것은 더러워 보이는 의도 한대로 불행하게도이 작동하지 않습니다 다음
이 내 코드입니다. 파일이 존재하지 않으면 생성되지만 루트 요소는 추가되지 않습니다. 내가 도대체 뭘 잘못하고있는 겁니까? 이 같은