Тип QML XmlListModelRole
Для указания роли для XmlListModel. Подробнее...
| Заявление об импорте: | import QtQml.XmlListModel |
Свойства
- attributeName : строка
- elementName : строка
- name : строка
Подробное описание
См. также Qt QML.
Документация по свойствам
attributeName : строка
Атрибут XML-элемента, который будет использоваться для чтения данных. XML-элемент задается свойством elementName.
Например, следующая модель имеет роль под названием "title", которая считывает данные из XML-элемента <title>. Также она имеет другую роль под названием "timestamp", которая использует тот же XML-элемент <title>, но считывает его атрибут "created" для извлечения фактического значения.
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 }
} Когда задан attributeName, elementName можно оставить пустым. В этом случае будет считываться атрибут верхнего уровня XML-элемента запроса.
Например, если у вас есть следующий XML-документ:
<documents>
<document title="Title1"/>
<document title="Title2"/>
</documents> Для извлечения заголовков документов вам нужна следующая модель:
XmlListModel {
id: xmlModel
source: "file.xml"
query: "/documents/document"
XmlListModelRole {
name: "title"
elementName: ""
attributeName: "title"
}
} Если вам не нужно анализировать какие-либо атрибуты для указанного XML-элемента, просто оставьте это свойство пустым.
См. также elementName.
elementName : строка
Имя XML-элемента или путь к XML-элементу, который будет использоваться для чтения данных. Элемент должен фактически содержать текст.
Можно указать свойство attributeName для извлечения данных.
Например, следующая модель имеет роль под названием "title", которая считывает данные из XML-элемента <title>. Также она имеет другую роль под названием "timestamp", которая использует тот же XML-элемент <title>, но считывает его атрибут "created" для извлечения фактического значения.
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 }
} Когда задан attributeName, элемент elementName можно оставить пустым. В этом случае будет считываться атрибут верхнего уровня XML-элемента запроса.
Например, если у вас есть следующий XML-документ:
<documents>
<document title="Title1"/>
<document title="Title2"/>
</documents> Для извлечения заголовков документов вам нужна следующая модель:
XmlListModel {
id: xmlModel
source: "file.xml"
query: "/documents/document"
XmlListModelRole {
name: "title"
elementName: ""
attributeName: "title"
}
} Свойство elementName фактически может содержать путь к вложенному XML-элементу. Все элементы в пути должны быть соединены символом '/'.
Например, если у вас есть следующий XML-документ:
<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> Вы можете извлечь количество страниц с помощью следующей роли:
XmlListModel {
id: xmlModel
source: "file.xml"
query: "/documents/document"
// ...
XmlListModelRole {
name: "pages"
elementName: "info/num_pages"
}
} Примечание: Путь к элементу не должен начинаться или заканчиваться на '/'.
См. также attributeName.
name : строка
Имя роли. Это имя используется для доступа к данным модели для этой роли.
Например, следующая модель имеет роль под названием "title", к которой можно получить доступ из делегата представления:
XmlListModel {
id: xmlModel
source: "file.xml"
query: "/documents/document"
XmlListModelRole { name: "title"; elementName: "title" }
} ListView {
model: xmlModel
delegate: Text { text: title }
}
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qml-qtqml-xmllistmodel-xmllistmodelrole.html