XOM Javaライブラリを使用してan RSS fieldを解析しようとしています。各エントリの画像URLは、下に示すように、<img>
要素の属性として格納されます。 .getFirstChildElement("img")
で<img src="">
を解析しようとすると XOMで要素属性を解析できません
<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= ...>
を取得しようとすると、私のコードがクラッシュを作り、NULLポインタを返します。私のプログラムが<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 src ='を解析できないという問題を解決しません –