在 QT c++ 中更新 XML 文件标记文本

Update XML file tag text in QT c++

本文关键字:文件 文本 XML 更新 QT c++      更新时间:2023-10-16
<HmiRequest>
    <Type>AlertPopup</Type>
    <Id>123</Id>
    <Order>new</Order>
    <HmiContent>
        <ATBev_1000_Label_NatureOfCall>eCall</ATBev_1000_Label_NatureOfCall>
    </HmiContent>
</HmiRequest>

在上面的 xml 文件中,我想用 111 更新 Id 值"123"。123 到 111。我可以更新标签名称,但值我们如何更改?

试试这个

QDomDocument doc;
doc.setContent(QString("<HmiRequest>    <Type>AlertPopup</Type>    <Id>123</Id>    <Order>new</Order>    <HmiContent>        <ATBev_1000_Label_NatureOfCall>eCall</ATBev_1000_Label_NatureOfCall>    </HmiContent></HmiRequest>"), false);
QDomNodeList lstNodes = doc.documentElement().childNodes();
int iCount = lstNodes. count();
for (int i = 0; i < iCount; ++i)
{
    if (lstNodes.at(i).nodeName() == "Id")
    {
        QDomElement newIdTag = doc.createElement(QString("Id"));
        QDomText idVal = doc.createTextNode(QString("111"));
        newIdTag.appendChild(idVal);
        doc.documentElement().replaceChild(newIdTag, lstNodes.at(i));
        break;
    }
}
qDebug() << doc.toString(4);