无法在QDomDocument中设置内容

Unable to setContent in QDomDocument

本文关键字:设置 QDomDocument      更新时间:2023-10-16

我一直在尝试将用Python/Pyside/Qt4.7.4编写的函数移植到c++中,症结在于设置QDomDocument的内容。在Python 2.6中,我可以这样做:

doc = QtXml.QDomDocument("initData")
file = QtCore.QFile("initData.xml")
if not file.open(QtCore.QIODevice.ReadOnly):
   exit()
if not doc.setContent(file):
   file.close()
   exit()

和所有的都是很好的(文件存在,可以由程序读取,得到解析,并得到的DOM文档可以操纵,我所期望的),但在c++(使用Qt Creator 2.3.1, Qt 4.7.4,在OSX上)。如果我尝试:

QFile *file = new QFile("/Users/UserName/Desktop/ProgramFolder/files/initData.xml");
file->open(QIODevice::ReadWrite|QIODevice::Text);
QDomDocument *doc = new QDomDocument;
doc->setContent(file);

:

Symbols not found
file not found
Collect2 - Id returned exit 1 status
file not found

当我删除第三行和第四行并用isOpen调试语句替换它们时,我得到了文件存在的确认,并且Qt可以读取它。有没有人有什么想法,我可以用来调试这个?

QT += xml在QMake项目文件中丢失