我有大约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。
答案 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有用,但值得一看。