XmlRole (XML角色)
用于为XmlListModel指定角色
属性:
| isKey | 定义这是否为关键角色。关键角色用于确定在调用 XmlListMode::reload() 时是否应更新一组值或将其添加到 XML 列表模型中。 |
| name | 角色的名称。此名称用于访问此角色的模型数据 |
| query | 此角色的相对 XPath 表达式查询。查询必须是相对的;它不能以“/”开头 |
例子:
获取name,age,height:
XmlRole{
name:"name"
query: "name/string()"
}
XmlRole{
name:"age"
query: "age/string()"
}
XmlRole{
name:"height"
query: "height/string()"
}
使用关键的XML角色:
isKey : bool:定义这是否为关键角色。关键角色用于确定在调用 XmlListModel:reload ()时是否应更新一组值或将其添加到 XML 列表模型中。
XmlListModel(Xml列表视图)
使用时需要导入:
import QtQuick.XmlListModel xxx(根据你的版本设置)
XmlListModel允许从一个XML数据源创建一个模型,可以通过XmlRole元素来指定一个角色。XmlListModel 用于从 XML 数据创建只读模型。
属性:
| count | 模型中数据条目的数量 |
| namespaceDeclarations | 要在 XPath 查询中使用的命名空间声明 |
| progress | 这指示下载 XML 数据源的当前进度 |
| query | 一个绝对 XPath 查询 |
| roles:list<XmlRole> | 要为此模型提供的角色。 |
| source | XML 数据源的位置。 |
| status | 状态 |
| xml | 此属性保存此模型的 XML 数据 |
status:enumertion(状态)
| XmlListModel.Null | 空 |
| XmlListModel.Ready | 就绪 |
| XmlListModel.Loading | 正在加载 |
| XmlListModel.Error | 错误 |
函数:
| errorString() | 错误信息 |
| get(int index) | 获取索引的数据 |
| reload() | 重新加载模型 |
query的使用:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<id id="1">
<name>AAA</name>
<age>13</age>
<height1>160</height1>
</id>
<id id="2">
<name>BBB</name>
<age>15</age>
<height1>165</height1>
</id>
</root>
读取name,age,height的话:
XmlListModel{
id:xmodel
source: "qrc:/image/XMLtext.xml"
query: "/root/id"
XmlRole{name:"name";query: "name/string()"}
XmlRole{name:"age";query: "age/string()"}
XmlRole{name:"height1";query: "height1/string()"}
}
使用listView显示数据:
ListView{
width: 200;height: 200
model:xmodel
delegate: Text {
text: name+" "+age+" "+height
}
}
运行结果:
XML关键角色:
XmlRole{name: "name"; query:"name/string()"; iskey:true}
可以将某些角色定义为“键”,以便在调用 reload() 时,模型将仅添加和刷新包含这些键的新值的数据。
然后,当调用 reload() 时,模型将仅添加和重新加载具有模型中尚不存在的“name”值的项目。
这在显示增量更新的 XML 文档的内容(如 RSS 源)以避免在视图中重新绘制模型的全部内容时非常有用。
如果指定了多个关键角色,则模型仅添加和重新加载具有模型中尚不存在的所有关键角色的组合值的项目。
get()获取索引处的项:
var str=xmodel.get(1).name//获取第二项的name
XmlListModel是QtQuick用于从XML数据创建只读模型的组件。通过XmlRole定义角色,如name、age和height,并使用XPath查询来提取数据。关键角色在reload时决定是否更新或添加数据,适用于增量更新场景。例如,name可以作为关键角色,确保只有新name值的项目才会被添加或更新。
706

被折叠的 条评论
为什么被折叠?



