我想在Qt v5.0.2中更新单个XML元素。
让我们说这是我的XML文件:
<?xml version="1.0" encoding="utf-8"?>
<root>
<myValue1 value="1" />
<myValue2 value="2" />
</root>
我想更新XML元素myValue并将值设置为2。
<?xml version="1.0" encoding="utf-8"?>
<root>
<myValue1 value="2" />
<myValue2 value="2" />
</root>
如何解决此问题?当然,我可以创建一个QXmlStreamWriter
并编写完整的XML(所有4条数据行),但我想做一些小而聪明的事情。
答案 0 :(得分:1)
使用QDomDocument
:
QDomDocument doc;
doc.setContent(<your xml>);
QDomNodeList elems = doc.elementsByTagName("myValue1");
if (!elems.isEmpty())
{
QDomElement el = elems.at(0).toElement();
if (!el.isNull())
{
if (el.hasAttribute("value"))
{
el.setAttribute("value", "2");
}
}
}
qDebug() << doc.toString();