Russian Qt Forum
Мая 03, 2025, 06:28 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: XmlListModel в QML  (Прочитано 9740 раз)
Pingvin
Гость
« : Марта 26, 2014, 12:17 »

Добрый день !)  У меня возникла такая проблема :
есть xml файл ,такого вида :(тут часть xml)
Код
XML
<image size="small">34/274359.jpg</image>
<image size="medium"> 64/274359.jpg</image>
<image size="large">274359.jpg</image>
<image size="extralarge">252/274359.jpg</image>
<image size="mega">
Mon.jpg
</image>
 
Так вот мне нужно парсить только тэг image у которого size=large.
Долго уже мучаюсь не знаю как сделать  В замешательстве
За любую информацию буду безумно благодарен:)
Записан
OKTA
Гость
« Ответ #1 : Марта 26, 2014, 12:47 »

http://stackoverflow.com/questions/19281773/reading-multiple-xml-attributes-with-qml
Это вроде должно помочь. Просто так тэг не прочитать.
Записан
Pingvin
Гость
« Ответ #2 : Марта 26, 2014, 13:18 »

они там получают свойство ,а мне нужно значение внутри тэга(
Записан
OKTA
Гость
« Ответ #3 : Марта 26, 2014, 13:53 »

Там как раз человек пытался получить значения countdown внутри тэга <departureTime delay="" countdown="3"/>
Записан
Pingvin
Гость
« Ответ #4 : Марта 26, 2014, 16:29 »

а мб будет проще через json? (есть такая возможность )
Записан
Pingvin
Гость
« Ответ #5 : Марта 26, 2014, 16:31 »

а в том коде,что по ссылке я ничего не понял если честно
Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #6 : Марта 27, 2014, 10:43 »

Код:
XmlListModel {
     id: xmlModel
     source: "ФАЙЛ"
     query: "/image"
     XmlRole { name: "size"; query: "@size/string()" }
     XmlRole { name: "image"; query: "image/string()" }
}

Как-то так
« Последнее редактирование: Марта 27, 2014, 10:47 от kibsoft » Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
OKTA
Гость
« Ответ #7 : Марта 27, 2014, 10:46 »

 Шокированный работает! огонь!!
Спасибо!  Подмигивающий
Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #8 : Марта 27, 2014, 10:47 »

Не за что Улыбающийся
Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
Pingvin
Гость
« Ответ #9 : Марта 27, 2014, 11:57 »

Да,спасибо огромное,но size выводит ,a c image какие то проблемы:(
Записан
OKTA
Гость
« Ответ #10 : Марта 27, 2014, 12:09 »

Вот так работает
Код:
import QtQuick 1.0

Rectangle {
    width: 200
    height: 200

    XmlListModel {
      id: itemmodel
      xml: "<list><item id=\"1\">This i want</item><item id=\"2\">This i want2</item></list>"
      query: "/list/item"
      XmlRole {
          name: "itemNum"
          query: "@id/string()"
      }
      XmlRole {
          name: "itemContant"
          query: "string()"
      }
    }
    ListView {
       width: 180; height: 300
       model: itemmodel
       delegate: Rectangle {
         height: 40
         width: 100

         Text {
             text: "Item Id:" + itemNum + "; Item Data:" + itemContant
         }
       }
     }
}
Записан
Pingvin
Гость
« Ответ #11 : Марта 27, 2014, 12:34 »

все равно ,что то не то((
Код
C++ (Qt)
Rectangle {
   width: parent.width
   height: parent.height
 
   XmlListModel {
     id: itemmodel
     source: "http://ws.audioscrobbler.com/2.0/?method=geo.gettopartists&country=spain&api_key=fef91516474dea0dca023e9281fb5c11"
     query: "/lfm/topartists/artist"
 
     XmlRole {
         name: "title"
         query: "name/string()"
     }
     XmlRole {
         name: "image"
         query: "image/string()"
     }
   }
   ListView {
      width: parent.width; height: parent.height
      model: itemmodel
      delegate: Item {
          id: delegate
          height: column.height + 40
          width: delegate.ListView.view.width
 
 
          Column {
              id: column
              x: 20; y: 20
              width: parent.width - 40
 
              Text {
                  id: titleText
                  text: title; width: parent.width; wrapMode: Text.WordWrap
                  font { bold: true; family: "Helvetica"; pointSize: 16 }
              }
              Image {
                  id: img
                  source: title1
                  height: 100
                  width: 100
 
              }
 
              Text {
                  id: descriptionText
                  width: parent.width; text: image
                wrapMode: Text.WordWrap; font.family: "Helvetica"
              }
          }
 
          Rectangle {
              width: parent.width; height: 1; color: "#cccccc"
              anchors.bottom: parent.bottom
          }
      }
    }
}
Записан
Pingvin
Гость
« Ответ #12 : Марта 27, 2014, 12:34 »

заголовки выводит ,а ссылки на изображения нет В замешательстве
Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #13 : Марта 27, 2014, 14:29 »

Проблема в том, что у вас несколько элементов image у artist. Я полагаю, что нужно создать отдельную роль на каждый image в зависимости от размера:
Код:
XmlRole {
   name: "small_image"
   query: "строка_запроса"
}

В query вы должны поместить правильный XPath запрос, например, использовать функцию contains() или что-то в этом роде. Т.е. вы должны однозначно определить элемент <image size="small"> и остальные.
Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
Pingvin
Гость
« Ответ #14 : Марта 27, 2014, 14:31 »

но тогда только один ,потому что мне нужно получать только <image size="large">
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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