我正在从供稿中获取URL列表,如何从列表中获取所需的URL。
我收到了传递给对象的URL列表,其中包括指向其自身的图像的URL,缩略图,有关文件类型的信息等。
URL url = new URL("https://catalog.example.com/publicdomain/browse/en/recent.atom");
XmlReader xmlReader = null;
try {
xmlReader = new XmlReader(url);
SyndFeed feeder = new SyndFeedInput().build(xmlReader);
for (Iterator iterator = feeder.getEntries().iterator(); iterator
.hasNext();) {
SyndEntry syndEntry = (SyndEntry) iterator.next();
System.out.println(syndEntry.getAuthor());
Object[] str = syndEntry.getLinks().toArray();
System.out.println(str[3] );
}
} finally {
if (xmlReader != null)
xmlReader.close();
}
当我使用'str [3]'时,输出如下:
John Doe
SyndLinkImpl.hreflang=null
SyndLinkImpl.rel=http://opds-example.org/image/thumbnail
SyndLinkImpl.length=0
SyndLinkImpl.href=https://covers.example.net/book/6709.jpg
SyndLinkImpl.title=null
SyndLinkImpl.type=image/jpeg
我不希望对数组的索引进行硬编码,因为提要可以更改。 我如何更改代码以检测数组的哪个索引具有图像类型的URL并复制该URL。 我想使用相同的方法来检查哪个索引具有pdf类型内容的url。
Thamls
答案 0 :(得分:0)
我将通过以下方式进行操作:
SyndFeed feeder = new SyndFeedInput().build(xmlReader);
for (SyndEntry syndEntry: feeder.getEntries()) {
System.out.println(syndEntry.getAuthor());
List<SyndLinkImpl> links = syndEntry.getLinks().stream().filter(link -> "image/jpeg".equals(link.getType))()).collect(Collectors.toList());
System.out.println(links.toArray());
}