如何从对象数组中获取图像的URL

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从对象数组中获取图像的URL相关的知识,希望对你有一定的参考价值。

我从Feed中获取了一个URL列表,如何从列表中获取所需的urlf。

我收到一个传递给对象的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

我不想把硬编码放在数组的索引中,因为feed会改变。如何更改我的代码以检测数组的哪个索引具有类型图像的URL并复制URL。我想使用相同的方法来检查哪个索引具有pdf类型内容的URL。

Thamls

答案

我会用以下方式做到这一点:

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());
}

以上是关于如何从对象数组中获取图像的URL的主要内容,如果未能解决你的问题,请参考以下文章

如何从Android片段中的相机获取图像

从 ios 中的 Url 获取多个图像

从图库中获取图像以在片段中的图像视图中设置? [复制]

如何从URL获取片段标识符(hash#之后的值)?

如何从 API/URL 异步加载图像?

如何从 React 中的数组中获取值? [关闭]