Qt修改XML文件某个节点属性
时间: 2023-12-09 22:05:39 浏览: 128
在Qt中修改XML文件某个节点属性,可以使用Qt自带的QDomDocument类进行操作。下面是一个简单的示例代码,假设我们要修改XML文件中id为1的节点的name属性为"new_name":
```c++
// 打开XML文件
QFile file("test.xml");
if (!file.open(QIODevice::ReadOnly))
return;
// 创建QDomDocument对象并加载XML文件
QDomDocument doc;
if (!doc.setContent(&file)) {
file.close();
return;
}
file.close();
// 获取根节点
QDomElement root = doc.documentElement();
// 查找id为1的节点
QDomNodeList nodes = root.elementsByTagName("node");
for (int i = 0; i < nodes.size(); i++) {
QDomElement node = nodes.at(i).toElement();
int id = node.attribute("id").toInt();
if (id == 1) {
// 修改节点属性
node.setAttribute("name", "new_name");
break;
}
}
// 保存修改后的XML文件
if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate))
return;
QTextStream out(&file);
out.setCodec("UTF-8");
doc.save(out, 4);
file.close();
```
需要注意的是,修改完节点属性后,需要将QDomDocument对象保存到XML文件中,否则修改不会生效。
阅读全文