如何下载其URL存储在xml文档中的多个文件?

时间:2013-05-26 00:23:15

标签: xml file url download

我的计算机上有一个xml文档基本上是这样的:

<item playlist="3" gameid="32" catid="1" title="Cul-De-Sac of Memories" artist="Christopher Lennertz" scr="../mp3/sims3p/build/cul-de-sac_of_memories.flv" />

<item playlist="3" gameid="30" catid="4" title="Brave" artist="Kelis" scr="../mp3/sims3ln/electronica/brave.flv" />

<item playlist="3" gameid="15" catid="1" title="First Volley" artist="General Midi" scr="../mp3/sims2nl/build/general_midi_-_first_volley.flv" />

除了它有更多的项目(和一些评论)。我一直在拼命想找到一种方法来获得程序/脚本:

  1. src="和xml标记中的下一个"之间获取网址。
  2. 将网址中的../替换为http://www.WEBSITE.com/,并将其存储为变量,例如Song_URL
  3. 将歌曲名称放在title="和下一个"之间,从它获取网址的相同标签中获取,也可以存储一个变量,例如Song_Name
  4. Song_URL下载歌曲,并将其命名为Song_Name
  5. 对于文档中的每个标记。请注意,文档中的某些标记如下所示:<item playlist="2" gameid="28" catid="2" title="Load" />对我来说并不重要。

    我知道一点点Bash,Applescript和Python,但是对此没有足够的了解。如果有人能帮助我做到这一点,无论你喜欢什么样的编程语言(可能在我列出的3中,或者在Java,Ruby,C或其他任何你想要的东西中),无论你想要什么,我会非常非常欣赏它!

2 个答案:

答案 0 :(得分:1)

我不知道如何使用python来解决这个问题。但似乎你需要一个XML解析器来提取想要的标签。然后使用一些字符串操作来获取所需的URL。最后从URL获取你的mp3。

我很确定你可以在python中完成你的工作。但是如果你不介意用Java来处理它,this site描述了一些XML解析器库。我认为任何描述的lib都能满足您的需求。获取网址后,您可以通过以下代码阅读本文,就像读取本地文件一样:

URL url = new URL("your song url");
url.openConnection();
InputStream reader = url.openStream();

希望有所帮助。

答案 1 :(得分:0)

我在朋友的帮助下想出了如何做到这一点。使用基本文本程序将../的所有实例替换为http://www.WEBSITE.com/后,我使用以下程序下载歌曲:

import urllib F = open('/PATH/TO/FILE.txt') document = F.readlines() for string in document:

index1 = string.find('scr="')+5
index2 = string.find('"',index1)
Song_url = string[index1:index2]

index3 = string.find('title="')+7
index4 = string.find('"',index3)
Song_name = string[index3:index4]

u = urllib.urlopen(Song_url)
localFile = open((Song_name + '.flv'),'w')
localFile.write(u.read())
localFile.close()

它就像一个魅力。