我想更新 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>
我如何在 Qt 中处理这个问题?当然,我可以创建一个 QXmlStreamWriter
并编写完整的 XML(所有 4 条数据行),但我想做一些小而聪明的事情。
最佳答案
使用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();
关于c++ - Qt 更新单个 XML 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17936818/