【问题标题】:how to cope with different type of xml如何应对不同类型的xml
【发布时间】:2015-02-05 00:55:50
【问题描述】:

我正在编写一个播客应用程序,就像一个周末项目一样。开始几分钟后,我遇到了一个问题。到目前为止,我已经查看了两个提要的 xml。

  1. http://feeds.feedburner.com/coderradiomp3?format=xml
  2. http://feeds.twit.tv/sn.xml
  3. http://revision3.com/tekzilla/feed/mp4-hd30/

在这两种情况下,指向 mp3 文件的链接都位于不同的位置。在 feed#2 中,它位于 item -> 链接下,而在 feed #1 中,它位于 item -> media:content

类似的频道 -> 提要 #2 中的链接是提要的 xml 的 URL,而提要 #1 中的链接是指向网站的链接。

到目前为止,我只是比较两个站点的提要。有可能其他网站正在以其他方式生成提要。

现在,因为指向 mp3 的链接/可以位于提要中的不同位置。如何可靠地解析提要以始终找到指向 mp3、标题、发布日期等的链接。

是不是因为一个是rss而另一个是atom? 我怎么知道哪个是什么。提要 #2 和提要 #3 均以 rss 开头,但指向不同位置的媒体文件的链接。

【问题讨论】:

  • Go 中的标准 XML 解析器可以容忍缺失字段。您正在考虑的 XML 文档有多“可变”?是否有一种格式可以代表您将阅读的文档类型的超集?
  • 具体来说,您能否修改您的问题以具体表达您正在谈论的播客格式? RSSAtom?细节很重要。您还可以查看 github.com/gpodder/podcastparser/blob/master/doc/index.rst 中的文档,了解其他开发人员在哪些领域对播客特别感兴趣。

标签: xml go podcast


【解决方案1】:

自我宣传:https://github.com/kylewolfe/simplexml

这个 xml 包更适合动态 xml 操作 (imo)。它目前正在开发中,但到目前为止我已经将它用于一些非关键工具。

【讨论】:

    猜你喜欢
    • 2012-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    • 1970-01-01
    • 2017-02-02
    相关资源
    最近更新 更多