QDomElement :: setTagName, похоже, не работает - PullRequest
1 голос
/ 09 марта 2010

код

#include <QtCore>
#include <QtXml/QDomElement>

int main(int argc, char *argv[])
{
    QCoreApplication app(argc, argv);

    QDomElement* element = new QDomElement();
    element->setTagName("feature");
    qDebug() << element->tagName();

    return app.exec();
}

печатает просто "". Однако, насколько я могу судить по документации , она должна печатать "feature". На самом деле

qDebug() << element->isNull();

выводит значение true, поэтому что-то настроено неправильно. Кто-нибудь знает, что я делаю не так?

Я использую Qt 4.6.3 в openSUSE Linux 11.2.

1 Ответ

3 голосов
/ 09 марта 2010

Вы не можете использовать конструктор по умолчанию. Вам нужно использовать QDomDocument::createElement(const QString &tagName). Элемент должен быть частью документа. Вы не можете использовать его "автономно".

Вот что говорится в документации для конструктора QDomElement по умолчанию :

QDomElement :: QDomElement ()

Создает пустой элемент. Используйте функцию QDomDocument :: createElement () для создания элементов с содержимым.

Под "пустым" они подразумевают ноль .

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