Sur cette page

XmlListModelRole QML Type

Pour attribuer un rôle à une entité « XmlListModel ». En savoir plus…

Import Statement: import QtQml.XmlListModel

Propriétés

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.