gpt4 book ai didi

java - 无法使用 XOM 解析元素属性

转载 作者:太空宇宙 更新时间:2023-11-04 12:03:11 30 4
gpt4 key购买 nike

我正在尝试解析an RSS field使用XOM Java 库。每个条目的图像 URL 都存储为 <img> 的属性。元素,如下所示。

<rss version="2.0">
<channel>
<item>
<title>Decision Paralysis</title>
<link>https://xkcd.com/1801/</link>
<description>
<img src="https://imgs.xkcd.com/comics/decision_paralysis.png"/>
</description>
<pubDate>Mon, 20 Feb 2017 05:00:00 -0000</pubDate>
<guid>https://xkcd.com/1801/</guid>
</item>
</channel>
</rss>

尝试解析<img src="">.getFirstChildElement("img")只返回一个空指针,当我尝试检索 <img src= ...> 时,使我的代码崩溃。为什么我的程序无法读取<img>元素,如何正确读取它?

import nu.xom.*;

public class RSSParser {
public static void main() {
try {
Builder parser = new Builder();
Document doc = parser.build ( "https://xkcd.com/rss.xml" );
Element rootElement = doc.getRootElement();
Element channelElement = rootElement.getFirstChildElement("channel");
Elements itemList = channelElement.getChildElements("item");

// Iterate through itemList
for (int i = 0; i < itemList.size(); i++) {
Element item = itemList.get(i);
Element descElement = item.getFirstChildElement("description");
Element imgElement = descElement.getFirstChildElement("img");
// Crashes with NullPointerException
String imgSrc = imgElement.getAttributeValue("src");
}
}
catch (Exception error) {
error.printStackTrace();
System.exit(1);
}
}
}

最佳答案

项目中没有 img 元素。尝试一下

  if (imgElement != null) {
String imgSrc = imgElement.getAttributeValue("src");
}

该项目包含的内容是:

<description>&lt;img    
src="http://imgs.xkcd.com/comics/us_state_names.png"
title="Technically DC isn't a state, but no one is too
pedantic about it because they don't want to disturb the snakes
."
alt="Technically DC isn't a state, but no one is too pedantic about it because they don't want to disturb the snakes." /&gt;
</description>

这不是一个 img 元素。这是纯文本。

关于java - 无法使用 XOM 解析元素属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40687122/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com