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. 的商标。所有其他商标均为其各自所有者的财产。