首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

依然是QML中xmllistmodel有关问题 (Qt qml xmllistmodel)

2012-10-18 
依然是QML中xmllistmodel问题 (Qt qml xmllistmodel)[XML code?xml version1.0 encodingutf-8 ?r

依然是QML中xmllistmodel问题 (Qt qml xmllistmodel)
[

XML code
<?xml version="1.0" encoding="utf-8" ?><rss version="2.0">  <channel>  <title>火影忍者</title>  <item>  <title>第一集</title>  </item>  <item>  <title>第二集</title>  </item>  </channel></rss>


JScript code
                XmlListModel{                    id:channels                    source: "xx.xml"                    query: "/rss/channel/item"                    XmlRole{name:"tvname"; query:"title/string()" }//能通过代理(delegate)的Text能显示每个item下title,(如果有多个title则不能,需要加下标,很麻烦)                }


这种情况下如何显示上级标签的火影忍者呢?listview中delegate:item{ Text{ text:tvname } }

JScript code
                XmlListModel{                    id:channels                    source: "xx.xml"                    query: "/rss/channel"                    XmlRole{name:"tvname"; query:"title/string()"}  //能访问到火影忍者               }

如果要访问第一集第二集则需要 XmlRole{name:"name1"; query:"item[1]/title/string()"} 需要加下标才能访问第一集
XmlRole{name:"name2"; query:"item[2]/title/string()"} 需要改变name里面的别名和查询里面的下标才能访问第二集。
为了让每级标签的title都能显示,这个方法显然很繁琐。但第一个方法我想不到该如何查询“火影忍者”
方法2中的代理:
listview中delegate:item{ Text{ text:tvname }; Text{ text:name1 }; Text{ text:name2 }; } 注:这里只是简单写了一下代理,总之引用xmlrole方法是这样,繁琐得很。假如同级标签里有很多title,那不是还得逐一逐一的xmlrole,逐一逐一的Text??

思来想去,尝试了些方法都不行。所以又来向各路大哥来讨教一下了,谢谢了。在xmllistmodel中query设置好了查询路径之后,qml中有什么简单一点的方法能实现xml上下级标签多个字符串同时显示呢?




[解决办法]
JScript code
query: "//title"XmlRole {name: "tvname"; query: "./string()"} 

热点排行