QML 中的 RSS 解析

发布于 2024-12-04 16:56:50 字数 389 浏览 1 评论 0原文

我想用 QML 解析 RSS feed。

feed 结构看起来

<channel>
<item>
<title>
</title>
<description>
</description>
<media:content url="http://someURLHere.com/avatar/somethingHere?s=96&#38;d=identicon&#38;r=G" medium="image">
</media:content>
</item>

我的问题是 media:content 标签,我如何将带有 QML 的 url 解析为字符串?

I wanna parse RSS feed with QML.

the feed structure looks like

<channel>
<item>
<title>
</title>
<description>
</description>
<media:content url="http://someURLHere.com/avatar/somethingHere?s=96&d=identicon&r=G" medium="image">
</media:content>
</item>

my problem is with the media:content tag, how can i parse the url with QML into a string ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

硪扪都還晓 2024-12-11 16:56:50

无法向 coyotte508 的答案添加评论,因此这里是:您可能需要使用 XmlListModel 的 namespaceDeclarations 属性为“媒体”添加命名空间。一个例子:

XmlListModel {
  ...
  namespaceDeclarations: "declare namespace media = 'http://put/the/path/here';"
  XmlRole { name: "url"; query: "media:content/@url/string()" }
}

Can't add a comment to coyotte508's answer, so here it is instead: you might need to add namespace for the 'media' using the XmlListModel's namespaceDeclarations property. An example:

XmlListModel {
  ...
  namespaceDeclarations: "declare namespace media = 'http://put/the/path/here';"
  XmlRole { name: "url"; query: "media:content/@url/string()" }
}
何以心动 2024-12-11 16:56:50

请参阅 http://doc.qt.nokia.com/4.7-snapshot/ qml-xmllistmodel.htmlhttp://doc.qt.nokia.com/4.7-snapshot/qml-xmlrole.html

基本上:

XmlModel {
  id: mymodel
  xml: "blabblabla" /* you can also use source: to read directly from the web */
  query: "/rss/channel/item/"

  XmlRole {
    name: "url"
    query: "media:content/@url/string()"
  }
}

并检索它:

mymodel.get(0).url

如果您有多个频道并且想要检索网址对于每个通道,您可以使用 mymodel.count 获取通道数,并使用 mymodel.get(i) 访问每个通道。

See http://doc.qt.nokia.com/4.7-snapshot/qml-xmllistmodel.html and http://doc.qt.nokia.com/4.7-snapshot/qml-xmlrole.html

Basically:

XmlModel {
  id: mymodel
  xml: "blabblabla" /* you can also use source: to read directly from the web */
  query: "/rss/channel/item/"

  XmlRole {
    name: "url"
    query: "media:content/@url/string()"
  }
}

And to retrieve it:

mymodel.get(0).url

If you have several channels and would like to retrieve the url for each, you can get the number of channels with mymodel.count, and access each of them with mymodel.get(i).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文