Consumiendo XML con QML
Consumir XML en QML es algo casi trivial, para ello contamos con el elemento XmlListModel que hará de data source de un ListView en el ejemplo a continuación, el XmlListModel cuenta con una id, un source, que en este caso hace uso de la Weather API de Yahoo, luego vienen los XmlRole los cuales describen los datos expuestos, cada uno de ellos tiene un name que sera usado luego para poder acceder a la data del role.
A continuación tenemos un delegate, en donde especificamos que datos vamos a consumir, el layout y la apariencia que tendran, por ultimo el ListView usa el model y el delegate que previamente configuramos, en este caso solo muestra un item (ver imagen abajo) ya que nuestra query solo devuelve un dato, pero si el data source devolviese mas items, cada uno de ellos poblarían el ListView, como bonus, el ListView cuenta con kinetic scroll, el cual nos da unos puntos extras en el apartado de UX con 0 esfuerzo por parte nuestra.
import Qt 4.7 Rectangle { width: 640 height: 360 XmlListModel { id: weatherModel source: "http://weather.yahooapis.com/forecastrss?w=468739&u=c" query: "/rss/channel/item" XmlRole { name: "title" query: "title/string()" } XmlRole { name: "description" query: "description/string()" } } Component { id: weatherDelegate Item { anchors.fill: parent Column { Text { text:title } Text { text:description } } } } ListView { id: weatherList anchors.fill: parent model: weatherModel delegate: weatherDelegate } }
No responses