Замените существующее значение тега xml происходит неожиданное изменение в файле xml - PullRequest
0 голосов
/ 03 июня 2019

Я хочу заменить значение тега xml. Я могу заменить значение с помощью QDom, однако сразу после этого я получаю изменение в своем XML-файле.

Я работаю с qt и пытался с помощью "QDOM" заменить значение тега и сохранить его с помощью "QTextStream".

QFile myFile(QLatin1String(my_FILE));
if (liceFile.open(QIODevice::ReadWrite)) {
    QDomDocument doc;
    doc.setContent(&myFile);
    QDomElement parentEle = doc.firstChildElement("Root");
    QDomNode myValue= parentEle.firstChildElement("Mytag");
    myValue.firstChild().setNodeValue("Hey");
    QTextStream stream(&myFile);
    doc.save(stream, 4);
    myFile.close();

XML-файл:

"<Root>
   <Mytag>Hello</Mytag>
   <User></User>
   <Pass>121</Pass>"

Если я заменил значение «Mytag». Вывод после замены.

"<Root>
  <Mytag>Hey</Mytag>
  <User/>
  <Pass>121</Pass>" 

Не могу понять, почему тег изменился с <User>Mr<User/> на <User/>

1 Ответ

0 голосов
/ 03 июня 2019

При сохранении документа XML весь документ записывается в выходной файл.Таким образом, QDomDocument сохранит <User></User>, который является пустым элементом с его стилем пустого элемента по умолчанию, то есть <User/>.

надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...