如何通过com.rometools.rome获取guid标签的isPermaLink属性值
获取RSS中guid标签的isPermaLink属性值
可以通过com.rometools.rome库获取isPermaLink属性值,你当前调用的syndEntry.getUri()只能拿到guid标签内的文本内容(比如article-67228311),要获取isPermaLink属性,需要调用syndEntry.getGuid()方法得到SyndGuid对象,再通过该对象的isPermaLink()方法获取属性值。
修改后的示例代码如下:
try (CloseableHttpClient client = HttpClients.createMinimal()) { HttpUriRequest request = new HttpGet(feedUrl); try (CloseableHttpResponse response = client.execute(request); InputStream stream = response.getEntity().getContent()) { SyndFeedInput input = new SyndFeedInput(); SyndFeed feed = input.build(new XmlReader(stream)); Iterator<SyndEntry> iter = feed.getEntries().iterator(); // 指定泛型类型,避免强制转换 while (iter.hasNext()) { SyndEntry syndEntry = iter.next(); SyndGuid syndGuid = syndEntry.getGuid(); if (syndGuid != null) { System.out.println("guid内容 ======== " + syndGuid.getValue()); System.out.println("isPermaLink属性 ======== " + syndGuid.isPermaLink()); } } } }
说明:
SyndGuid对象的getValue()方法对应guid标签内的文本内容,和你之前用getUri()得到的结果一致isPermaLink()方法会返回该属性的布尔值(对应XML中的isPermaLink="false"会返回false)- 给迭代器指定泛型
<SyndEntry>,可以省去强制类型转换,代码更简洁安全
内容的提问来源于stack exchange,提问作者selvi
相关产品推荐
相关产品推荐

