XmlListModelRole QML Type
Pour attribuer un rôle à une entité « XmlListModel ». En savoir plus…
| Import Statement: | import QtQml.XmlListModel |
Propriétés
- attributeName : string
- elementName : string
- name : string
Description détaillée
Voir aussi Qt Qml.
Documentation relative à la propriété
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 comporte un rôle nommé « title », qui lit les données à partir de l’élément XML <title>. Il comporte é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’attribut « attributeName » est spécifié, l’attribut « elementName » peut être laissé vide. Dans ce cas, c’est l’attribut de l’élément XML de niveau supérieur de la requête qui sera lu.
Par exemple, si vous disposez du 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 également « elementName ».
elementName : string
Le nom de l'élément XML, ou un chemin d'accès à cet élément, qui sera utilisé pour lire les données. L'élément doit effectivement contenir du texte.
Il est possible de spécifier la propriété ` attributeName ` pour extraire les données.
Par exemple, le modèle suivant comporte un rôle nommé « title », qui lit les données à partir de l'élément XML <title>. Il comporte également un autre rôle nommé « timestamp », qui utilise le même élément XML <title>, mais lit son attribut « created » pour 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’attribut ` attributeName ` est spécifié, l’attribut `elementName` peut être laissé vide. Dans ce cas, l’attribut de l’élément XML de niveau supérieur de la requête sera lu.
Par exemple, si vous disposez du 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 effet contenir un chemin d'accès vers l'élément XML imbriqué. Tous les éléments du chemin doivent être séparés par le caractère « '/' ».
Par exemple, si vous disposez du 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 à l’aide du 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 ni se terminer par '/'.
Voir également attributeName.
name : string
Le nom du rôle. Ce nom est utilisé pour accéder aux données du modèle associées à ce rôle.
Par exemple, le modèle suivant comporte un rôle nommé « title », accessible depuis le 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.