Auf dieser Seite

XmlListModelRole QML Type

Zum Zuweisen einer Rolle zu einem XmlListModel. Mehr...

Import Statement: import QtQml.XmlListModel

Eigenschaften

Ausführliche Beschreibung

Siehe auch Qt Qml.

Dokumentation zu den Eigenschaften

attributeName : string

Das Attribut des XML-Elements, das zum Lesen der Daten verwendet wird. Das XML-Element wird durch die Eigenschaft „ elementName “ angegeben.

Das folgende Modell enthält beispielsweise eine Rolle namens „title“, die die Daten aus dem XML-Element „ <title> “ ausliest. Es enthält außerdem eine weitere Rolle namens „timestamp“, die dasselbe XML-Element „ <title> “ verwendet, jedoch dessen Attribut „created“ ausliest, um den tatsächlichen Wert zu extrahieren.

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 }
}

Wenn der „attributeName“ angegeben ist, kann „ elementName “ leer gelassen werden. In diesem Fall wird das Attribut des obersten XML-Elements der Abfrage gelesen.

Wenn Sie beispielsweise das folgende XML-Dokument haben:

<documents>
    <document title="Title1"/>
    <document title="Title2"/>
</documents>

Um die Dokumenttitel zu extrahieren, benötigen Sie das folgende Modell:

XmlListModel {
    id: xmlModel
    source: "file.xml"
    query: "/documents/document"
    XmlListModelRole {
        name: "title"
        elementName: ""
        attributeName: "title"
    }
}

Wenn Sie keine Attribute für das angegebene XML-Element analysieren müssen, lassen Sie diese Eigenschaft einfach leer.

Siehe auch „ elementName “.

elementName : string

Der Name des XML-Elements oder ein Pfad zu dem XML-Element, das zum Einlesen der Daten verwendet wird. Das Element muss tatsächlich Text enthalten.

Optional kann die Eigenschaft „ attributeName “ angegeben werden, um die Daten zu extrahieren.

Das folgende Modell enthält beispielsweise eine Rolle namens „title“, die die Daten aus dem XML-Element <title> ausliest. Es enthält außerdem eine weitere Rolle namens „timestamp“, die dasselbe XML-Element <title> verwendet, jedoch dessen Attribut „created“ ausliest, um den tatsächlichen Wert zu extrahieren.

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 }
}

Wenn „ attributeName “ angegeben ist, kann „elementName“ leer gelassen werden. In diesem Fall wird das Attribut des obersten XML-Elements der Abfrage gelesen.

Wenn Sie beispielsweise das folgende XML-Dokument haben:

<documents>
    <document title="Title1"/>
    <document title="Title2"/>
</documents>

Um die Dokumenttitel zu extrahieren, benötigen Sie das folgende Modell:

XmlListModel {
    id: xmlModel
    source: "file.xml"
    query: "/documents/document"
    XmlListModelRole {
        name: "title"
        elementName: ""
        attributeName: "title"
    }
}

Die Eigenschaft „elementName“ kann tatsächlich einen Pfad zu einem verschachtelten XML-Element enthalten. Alle Elemente im Pfad müssen durch das Zeichen „ '/' “ verbunden sein.

Beispiel: Angenommen, Sie haben das folgende XML-Dokument:

<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>

Sie können die Anzahl der Seiten mit der folgenden Rolle extrahieren:

XmlListModel {
    id: xmlModel
    source: "file.xml"
    query: "/documents/document"
    // ...
    XmlListModelRole {
        name: "pages"
        elementName: "info/num_pages"
    }
}

Hinweis: Der Pfad zum Element darf nicht mit „ '/' “ beginnen oder enden.

Siehe auch „ attributeName “.

name : string

Der Name der Rolle. Dieser Name wird verwendet, um auf die Modelldaten dieser Rolle zuzugreifen.

Das folgende Modell enthält beispielsweise eine Rolle namens „title“, auf die über den Delegaten der Ansicht zugegriffen werden kann:

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.