我想替换 QString 中的元素 - QT - C++

问题描述

我有以下问题: 我在 QString 中保存了一个 XMLStart。

QString f = "<class=\"go\">\n"
            "<number>2</number>\n"
            "<column>3</column>\n"
            "<row>4</row>";

例如,我想通过使用替换或类似方法来更改此字符串中具有 7 的行的值。

f.replace();

我怎样才能做到这一点?这可能吗?

问候

解决方法

我不熟悉 Qt 中的 XML,我相信有一种更优雅的方式,希望有人会在我之后发帖,但这是一种简单的替换方式。

当然,您必须以更好的方式提供字符串值...

QString xml = "<class=\"go\">\n"
              "<number>2</number>\n"
              "<column>3</column>\n"
              "<row>4</row>";
QString tag = "row";
QString val = "7";

QByteArray exp("<%1>%2</%1>");
QString rex = QString(exp).arg(tag,".*");
QString rep = QString(exp).arg(tag,val);

xml.replace(QRegExp(rex),rep);