XmlListModelRole QML Type
Zur Angabe einer Rolle an eine XmlListModel. Mehr....
Import Statement: | import QtQml.XmlListModel |
Eigenschaften
- attributeName : string
- elementName : string
- name : string
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.