XmlListModelRole QML 类型
用于指定 XmlListModel 的角色。 更多...
| 导入语句 | import QtQml.XmlListModel | 
属性
- attributeName : string
- elementName : string
- name : string
详细描述
另请参阅 Qt Qml.
属性文档
| attributeName : string | 
将要用来读取数据的 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 : string | 
要读取数据的 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 : string | 
角色的名称。此名称用于访问此角色的模型数据。
例如,以下模型中有一个名为 "title" 的角色,可以从视图的代理处访问
XmlListModel { id: xmlModel source: "file.xml" query: "/documents/document" XmlListModelRole { name: "title"; elementName: "title" } }
ListView { model: xmlModel delegate: Text { text: title } }
© 2024 The Qt Company Ltd. 本文件中包含的文档贡献是其各自所有者的版权。提供的文档根据由自由软件基金会发布的 GNU 自由文档许可证版本 1.3 条款授权。Qt 及其相关标志是芬兰和/或全世界 The Qt Company Ltd. 的商标。所有其他商标均为其各自所有者的财产。