如何在shell脚本中解析rss-feeds / xml

时间:2009-01-14 17:47:40

标签: xml bash rss scripting

我想解析rss feed并在我的ReadyNas上下载podcasts,无论如何都要全天候运行。

所以我正在考虑让shell脚本定期检查提要并生成wget来下载文件。

进行解析的最佳方法是什么?

谢谢!

5 个答案:

答案 0 :(得分:21)

有时,带有shell标准命令的简单单行程序就足够了:

 wget -q -O- "http://www.rss-specifications.com/rss-podcast.xml" | grep -o '<enclosure url="[^"]*' | grep -o '[^"]*$' | xargs wget -c

当然这并不适用于所有情况,但它通常都足够好。

答案 1 :(得分:2)

你有权访问awk吗?也许你可以使用XMLGawk

答案 2 :(得分:1)

我了解了XMLStartlet herethere

但ReadyNas NV +是否有可用的端口?

答案 3 :(得分:1)

我编写了以下用于从Amazon S3下载XML的简单脚本,因此它可用于解析不同类型的XML文件:

#!/bin/bash
#
# Download all files from the Amazon feed
#
# Usage:
#  ./dl_amazon_feed_files.sh http://example.s3.amazonaws.com/
# Note: Don't forget about slash at the end
#

wget -qO- "$1" | grep -o '<Key>[^<]*' | grep -o "[^>]*$" | xargs -I% -L1 wget -c "$1%"

这与@leo answer类似。

答案 4 :(得分:0)

您可以使用libxml2中的xsltproc编写一个简单的xsl样式表来解析rs并输出链接列表。