XmlListModelRole QML Type

Zur Angabe einer Rolle an eine XmlListModel. Mehr....

Import Statement: import QtQml.XmlListModel

Eigenschaften

Ausführliche Beschreibung

Siehe auch Qt Qml.

Eigenschaft Dokumentation

attributeName : string

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

Das folgende Modell hat zum Beispiel eine Rolle namens "title", die die Daten aus dem XML-Element <title> liest. Es hat auch eine andere Rolle namens "timestamp", die dasselbe XML-Element <title> verwendet, aber dessen Attribut "created" liest, um den aktuellen 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 Attributname angegeben wird, kann elementName leer gelassen werden. In diesem Fall wird das Attribut des XML-Elements der obersten Ebene der Abfrage gelesen.

Ein Beispiel: Sie haben das folgende XML-Dokument:

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

Um die Dokumententitel 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 parsen müssen, lassen Sie diese Eigenschaft einfach leer.

Siehe auch elementName.


elementName : string

Der Name des XML-Elements oder ein Pfad zum XML-Element, das zum Lesen der Daten verwendet werden soll. Das Element muss tatsächlich Text enthalten.

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

Das folgende Modell verfügt beispielsweise über eine Rolle namens "title", die die Daten aus dem XML-Element <title> liest. Es hat auch eine andere Rolle namens "timestamp", die dasselbe XML-Element <title> verwendet, aber dessen Attribut "created" liest, um den aktuellen 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 wird, kann der Elementname leer bleiben. In diesem Fall wird das Attribut des XML-Elements der obersten Ebene der Abfrage gelesen.

Ein Beispiel: Sie haben das folgende XML-Dokument:

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

Um die Dokumententitel 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 einen Pfad zu dem verschachtelten XML-Element enthalten. Alle Elemente im Pfad müssen mit dem Zeichen '/' verbunden werden.

Wenn Sie zum Beispiel das folgende XML-Dokument haben:

<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 für die Rolle. Dieser Name wird für den Zugriff auf die Modelldaten für diese Rolle verwendet.

Das folgende Modell hat zum Beispiel eine Rolle mit dem Namen "title", auf die über den Delegierten 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 }
}

© 2025 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.