如何从很多URL中提取数据?

时间:2013-03-12 12:11:52

标签: java xml url automation

我有大约3200个小型XML文件的URL,其中有一些字符串形式的数据(显然)。当我转到URL 时,显示(不下载)XML文件。因此,我需要从所有这些XML中提取一些数据,并将其保存在单个.txt文件或XML文件中。如何自动完成此过程?

*注意:这就是文件的样子。我需要复制'位置'和' title'从所有这些中将它们放在一个文件中。使用什么方法可以实现这一目标?

<?xml version="1.0"?>
 -<playlist xmlns="http://xspf.org/ns/0/" version="1">
    -<tracklist>
    <location>http://radiotool.com/fransn.mp3</location> 
    <title>France, Paris radio 104.5</title> 
    </tracklist>
</playlist>

*编辑:修复了XML。

2 个答案:

答案 0 :(得分:2)

使用XQuery或XSLT很容易,但细节将取决于URL的保存方式。如果他们在Java列表中,那么(至少使用Saxon)您可以将此列表作为参数提供给以下查询:

declare variable urls as xs:string* external;
<data>{
  for $u in $urls return doc($u)//*:tracklist
}</data>

Java代码类似于:

Processor proc = new Processor();
XQueryCompiler c = proc.newXQueryCompiler();
XQueryEvaluator q = c.compile($query).load();
List<XdmItem> urls = new ArrayList();
for (url : inputUrls) {
  urls.append(new XdmAtomicValue(url);
}
q.setExternalVariable(new QName("urls"), new XdmValue(urls));
q.setDestination(...)
run();

答案 1 :(得分:0)

在这里查看JSoup库:http://jsoup.org/

它具有拉取和修复URL内容的功能,但它适用于HTML,所以我不确定它对XML有用,但值得一看。