Russian Qt Forum
Ноябрь 23, 2024, 08:11 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вопросы по созданию XmlListModel  (Прочитано 2308 раз)
amateur.cpp
Гость
« : Июль 21, 2013, 14:12 »

Помогите создать модель XmlListModel, что бы в ней были роли для любых параметров, т.е. title, file, name, start, end, как из всего документа, так и для отдельных тем. Что-то не получается Грустный
Код
C++ (Qt)
<?xml version="1.0" encoding="UTF-8"?>
<document>
 <theme title="Theme 1" file="theme1.mp3">          
     <page name="Page 5" start="183000" end="252000"/>
     <page name="Page 6" start="256000" end="320000"/>
     <page name="Page 7" start="321000" end="384000"/>                    
 </theme>
 <theme title="Theme 2" file="theme2.mp3">    
     <page name="Page 20" start="156000" end="196000"/>
     <page name="Page 21" start="156000" end="196000"/>      
 </theme>
</document>

Для того что бы возвратить параметр "file" в первом элементе "theme" нужно такое выражение XPath - "/document/theme[1]/@file", а для всех параметров "name" элемента "page"- "/document/theme[1]/page/@name".
У меня не получается создать роли для этих параметров в одной модели XmlListModel и все Грустный Возможно я что-то не понял, но мне интересно реально что бы получилось вот так:

Код
C++ (Qt)
XmlListModel {
      id: xmlModel
      source: "..."
      query: "????"
      XmlRole { name: "name"; query: "????/string()" } //  "/document/theme[1]/page/@name"
      XmlRole { name: "file"; query: "????/string()" } //  "/document/theme[1]/@file"
  }
Записан
amateur.cpp
Гость
« Ответ #1 : Август 07, 2013, 13:11 »

Неужели нельзя никак реализовать что-то такое?
Код
Javascript
XmlListModel {
      id: xmlModel
      source: "..."
      query: "/document/theme"
      XmlRole { name: "name"; query: "@file/string()" }      // Здесь "/document/theme/@file"
      XmlRole { name: "file"; query: "page/@name/string()" } // Здесь "/document/theme/page/@name"
  }
 
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.089 секунд. Запросов: 20.