crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Запись в xml из модели.
rezor
  опции профиля:
сообщение 4.8.2010, 17:00
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 26
Регистрация: 1.4.2009
Пользователь №: 655

Спасибо сказали: 1 раз(а)




Репутация:   0  


Есть 2 вопроса.
Есть функция записи в xml почему идет добавление не в корень документа а полная перезапись??
// Запись в xml фаил
void MainWindow::addCategoryInXML()
{

QFile file("BDwww.xml");

if(file.open(QIODevice::ReadWrite))
{
    QDomDocument doc;
    doc.setContent(&file);
    QDomElement root=doc.documentElement();// получаем корень документа
    qDebug() << root.nodeName(); // элемент правильно извлекается
    QDomElement categoryNum=doc.createElement("category");//создаем потомка
    root.appendChild(categoryNum);
  
    QDomElement categoryName=doc.createElement("name_category");
    categoryNum.appendChild(categoryName);
    QDomText categoryNameText = doc.createTextNode(nameCategory->text());
    categoryName.appendChild(categoryNameText);

    QTextStream (&file)<<doc.toString();

    file.close();


}
else qDebug()<<"Error open file";

}

Получается
<?xml version="1.0"?>
<bdWWW>
</bdWWW>


<?xml version='1.0'?>
<bdWWW>
<category>
  <name_category>1111111111</name_category>
</category>
</bdWWW>


Должно быть
<?xml version="1.0"?>
<bdWWW>
<category>
  <name_category>1111111111</name_category>
</category>
</bdWWW>


2Вопрос.
Есть модель в виде treeView. В нее добавляются категории и не ограниченное количество ссылок. При добавлении категории все понятно добавил и сразу записал в xml , а как записать ссылку ведь надо найти нужную категорию среди имеющихся в файле, по каким параметрам искать???
В модели я использую сигнал doubleClicked(const QModelIndex &) и к выделенному объекту добавляю потомка.
Если искать в файле по именам тогда нельзя будет создавать категории и ссылки с одинаковыми именами и каким вообще способом получить имя выделенного объекта в модели или есть альтернативные параметры поиска???
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов (1 - 2)
Гость_LNA_*
сообщение 18.8.2010, 16:47
Сообщение #2





Гости








    


1. Попробуй открыть файл ReadOnly
2. Наверное нужно как то сопоставить QModelIndex::internalPointer с элементами xml модели
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 18.8.2010, 19:28
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(rezor @ 4.8.2010, 21:00) *
а полная перезапись??
судя по приведённому результату, не перезапись, а дозапись в конец существующего
А причина вот:
Цитата(rezor @ 4.8.2010, 21:00) *
QTextStream (&file)<<doc.toString();


Цитата(rezor @ 4.8.2010, 21:00) *
2Вопрос.
совсем другой вопрос. Создавай новую тему.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.11.2024, 1:47