QDomDocument не будет вставлять QDomElement
Я делаю что-то с XML, и теперь я в замешательстве. Этот код работает отлично:
QDomElement new_item = doc.createElement(name);
new_item.setAttribute("type", value.typeName());
new_item.setAttribute("value", value.toString());
doc.elementsByTagName(section).at(0).appendChild(new_item);
Но если бы я сам создал QDomElement (без вызова метода createElement), он не вставляется в документ. Что-то вроде этого не работает:
QDomElement new_item;
new_item.setTagName(name);
new_item.setAttribute("type", value.typeName());
new_item.setAttribute("value", value.toString());
doc.elementsByTagName(section).at(0).appendChild(new_item);
Может кто-нибудь объяснить мне, почему мне нужно использовать метод createElement?
Спасибо:)
1 ответ
В основном, для создания DomElement нужна информация, которую имеет QDomDocument. Из документации Qt 4.7
Поскольку элементы, текстовые узлы, комментарии, инструкции по обработке и т. Д. Не могут существовать вне контекста документа, класс документа также содержит фабричные функции, необходимые для создания этих объектов. Созданные объекты узла имеют функцию ownerDocument(), которая связывает их с документом, в контексте которого они были созданы.
http://doc.qt.io/archives/qt-4.7/qdomdocument.html (третий абзац)