XmlListModelRole QML Type
Pour spécifier un rôle à un XmlListModel. Plus...
| Import Statement: | import QtQml.XmlListModel |
Propriétés
- attributeName : string
- elementName : string
- name : string
Description détaillée
Voir aussi Qt Qml.
Documentation sur les propriétés
attributeName : string
L'attribut de l'élément XML qui sera utilisé pour lire les données. L'élément XML est spécifié par la propriété elementName.
Par exemple, le modèle suivant a un rôle nommé "title", qui lit les données à partir de l'élément XML <title>. Il possède également un autre rôle nommé "timestamp", qui utilise le même élément XML <title>, mais lit son attribut "created" pour en extraire la valeur réelle.
XmlListModel {
id: xmlModel
source: "file.xml"
query: "/documents/document"
XmlListModelRole { name: "title"; elementName: "title" }
XmlListModelRole {
name: "timestamp"
elementName: "title"
attributeName: "created"
}
}
ListView {
anchors.fill: parent
model: xmlModel
delegate: Text { text: title + " created on " + timestamp }
}Lorsque l'attributName est spécifié, l'adresse elementName peut être laissée vide. Dans ce cas, c'est l'attribut de l'élément XML de premier niveau de la requête qui sera lu.
Par exemple, si vous avez le document XML suivant :
<documents> <document title="Title1"/> <document title="Title2"/> </documents>
Pour extraire les titres du document, vous avez besoin du modèle suivant :
XmlListModel { id: xmlModel source: "file.xml" query: "/documents/document" XmlListModelRole { name: "title" elementName: "" attributeName: "title" } }
Si vous n'avez pas besoin d'analyser les attributs de l'élément XML spécifié, laissez simplement cette propriété vide.
Voir aussi elementName.
elementName : string
Le nom de l'élément XML, ou un chemin vers l'élément XML, qui sera utilisé pour lire les données. L'élément doit contenir du texte.
En option, la propriété attributeName peut être spécifiée pour extraire les données.
Par exemple, le modèle suivant a un rôle nommé "title", qui lit les données à partir de l'élément XML <title>. Il possède également un autre rôle nommé "timestamp", qui utilise le même élément XML <title>, mais lit son attribut "created" pour en extraire la valeur réelle.
XmlListModel {
id: xmlModel
source: "file.xml"
query: "/documents/document"
XmlListModelRole { name: "title"; elementName: "title" }
XmlListModelRole {
name: "timestamp"
elementName: "title"
attributeName: "created"
}
}
ListView {
anchors.fill: parent
model: xmlModel
delegate: Text { text: title + " created on " + timestamp }
}Lorsque le site attributeName est spécifié, le nom de l'élément (elementName) peut être laissé vide. Dans ce cas, c'est l'attribut de l'élément XML de premier niveau de la requête qui sera lu.
Par exemple, si vous avez le document XML suivant :
<documents> <document title="Title1"/> <document title="Title2"/> </documents>
Pour extraire les titres du document, vous avez besoin du modèle suivant :
XmlListModel { id: xmlModel source: "file.xml" query: "/documents/document" XmlListModelRole { name: "title" elementName: "" attributeName: "title" } }
La propriété elementName peut en fait contenir un chemin vers l'élément XML imbriqué. Tous les éléments du chemin doivent être reliés par le caractère '/'.
Par exemple, si vous avez le document xml suivant :
<documents> <document> <title>Title1</title> <info> <num_pages>10</num_pages> </info> </document> <document> <title>Title2</title> <info> <num_pages>20</num_pages> </info> </document> </documents>
Vous pouvez extraire le nombre de pages avec le rôle suivant :
XmlListModel { id: xmlModel source: "file.xml" query: "/documents/document" // ... XmlListModelRole { name: "pages" elementName: "info/num_pages" } }
Remarque : le chemin d'accès à l'élément ne doit pas commencer ou se terminer par '/'.
Voir aussi attributeName.
name : string
Le nom du rôle. Ce nom est utilisé pour accéder aux données du modèle pour ce rôle.
Par exemple, le modèle suivant a un rôle nommé "title", auquel on peut accéder à partir du délégué de la vue :
XmlListModel { id: xmlModel source: "file.xml" query: "/documents/document" XmlListModelRole { name: "title"; elementName: "title" } }
ListView { model: xmlModel delegate: Text { text: title } }
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.