Je cherche à charger le contenu d'un ComboBox depuis un XML en utilisant XmlListModel.

Actuellement, je parviens à le faire si je ne définis qu'un seul XmlRole dans mon XmlListModel, mais ça perd un peu de son intérêt car je ne peux pas accéder au reste de mon document XML.

Voici mes codes exemples :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import QtQuick 2.1
import QtQuick.Controls 1.0
import QtQuick.Window 2.0
import QtQuick.XmlListModel 2.0
 
ApplicationWindow {
    title: qsTr("Test XML")
    width: 300
    height: 200
 
    ComboBox{
        id : combo
        model:xmlModel
 
        onCurrentIndexChanged{
            console.log(xmlModel)
            label.text =  xmlModel.get(currentIndex).titleXml
        }
    }
    Label{
        id : label
        y : 50
        text : 'aucune sélection'
    }
 
    XmlListModel {
        id: xmlModel
        source: "test.xml"
        query: "/rss/channel/item"
 
        XmlRole { name: "titleXml"; query: "title/string()" }
        //XmlRole { name: "pubDate"; query: "pubDate/string()" }
    }
}
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <item>
            <title>A blog post</title>
            <pubDate>Sat, 07 Sep 2010 10:00:01 GMT</pubDate>
        </item>
        <item>
            <title>Another blog post</title>
            <pubDate>Sat, 07 Sep 2010 15:35:01 GMT</pubDate>
        </item>
    </channel>
</rss>

L'idée serait donc de pouvoir renseigner dans mon ComboBox toutes les noeuds title et m'en servir pour lire les autres noeuds en décommentant la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
XmlRole { name: "pubDate"; query: "pubDate/string()" }
dans mon document QML.

Quelqu'un aurait-il une piste ?

D'avance merci.

J