XmlListModelRole QML Type
Zum Zuweisen einer Rolle zu einem XmlListModel. Mehr...
| Import Statement: | import QtQml.XmlListModel |
Eigenschaften
- attributeName : string
- elementName : string
- name : string
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.