Russian Qt Forum

Qt => XML => Тема начата: SASA от Июль 12, 2011, 18:00



Название: Почему падает???
Отправлено: SASA от Июль 12, 2011, 18:00
Код:
{
QDomElement dataSrc;
{
QDomDocument tempdoc;
dataSrc = tempdoc.createElement("node");
dataSrc.setAttribute("atr","_atr_");
}
QDomNode dataDst = dataSrc.cloneNode(true);
}

2008 студия. Запускаешь - падает.

Как создать оторванную ноду?


Название: Re: Почему падает???
Отправлено: SASA от Июль 15, 2011, 17:09
Для создания отдельных узлов и последующего их использования написал функцию.

/*!   \brief Функция возвращает отдельно висящий элемент дома.
*   
*         Если создать документ, создать от него узел, то после
*         удаления документа программа будет падать при попытке удалить
*         узел. Потому есть статический документ и все висящие узлы
*         будут создаваться этим  документом.
*         
*   \param[in] _name (\c const QString &) - Имя будущего элемента.
*   \return (\c QDomElement) - Новый элемент.
*/
QDomElement getAloneElement(const QString & _name)
{
   static QDomDocument tempdoc;
   QDomElement retelem = tempdoc.createElement(_name);
   return retelem;
}