我要替换xml标记的值。我可以使用QDom替换该值,但是在更改之后,我的xml文件中发生了更改。
我正在使用qt,并且尝试使用“ QDOM”替换标记值并使用“ QTextStream”保存它。
QFile myFile(QLatin1String(my_FILE));
if (liceFile.open(QIODevice::ReadWrite)) {
QDomDocument doc;
doc.setContent(&myFile);
QDomElement parentEle = doc.firstChildElement("Root");
QDomNode myValue= parentEle.firstChildElement("Mytag");
myValue.firstChild().setNodeValue("Hey");
QTextStream stream(&myFile);
doc.save(stream, 4);
myFile.close();
xml文件:
"<Root>
<Mytag>Hello</Mytag>
<User></User>
<Pass>121</Pass>"
如果我替换“ Mytag”的值。 替换后输出。
"<Root>
<Mytag>Hey</Mytag>
<User/>
<Pass>121</Pass>"
我不明白为什么标记从<User>Mr<User/>
更改为<User/>
答案 0 :(得分:0)
保存XML
文档时,整个文档将被写入输出文件。
因此,QDomDocument
将保存<User></User>
,这是一个具有默认空元素样式的空元素,即<User/>
。
希望它对您有帮助。