0

我想更新 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 条数据行),但我想做一些小而聪明的事情。

4

1 回答 1

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();
于 2013-07-30T06:16:58.447 回答