繁体   English   中英

无法使用JSoup解析XML(从Web)

[英]Can't parse XML (from web) using JSoup

我正在尝试处理从Web发送的小型XML文件,并从中解析一些属性。 我将如何在JSoup解决这个JSoup 我知道它不是XML解析器,而是HTML解析器,但它也支持XML ,我不必构建任何Handlers,BuildFactories等,而我必须在DOMSAX等中构建。

这是xml示例: LINK我无法将其粘贴到此处,因为它会在每一行之后退出代码标签-如果有人可以修复,我将不胜感激。

这是我的代码:

String xml = "http://www.omdbapi.com/?t=Private%20Ryan&y=&plot=short&r=xml";
Document doc = Jsoup.parse(xml, "", Parser.xmlParser());
// want to select first occurrence of genre tag though there is only one it 
// doesn't work without .first() - but it doesn't parse it
Element genreFromXml = doc.select("genre").first();
String genre = genreFromXml.text();
System.out.println(genre);

NPE结果为:

String genre = genreFromXml.text();

您的代码中有2个问题:

  1. 在提供期望的XML内容的同时,您提供URLString表示,您应该使用parse(InputStream in, String charsetName, String baseUri, Parser parser)代替将XML解析为输入流。
  2. XML没有元素genregenre是元素movie的属性。

代码如下所示:

String url = "http://www.omdbapi.com/?t=Private%20Ryan&y=&plot=short&r=xml";
// Parse the doc using an XML parser
Document doc = Jsoup.parse(new URL(url).openStream(), "UTF-8", "", Parser.xmlParser());
// Select the first element "movie"
Element movieFromXml = doc.select("movie").first();
// Get its attribute "genre"
String genre = movieFromXml.attr("genre");
// Print the result
System.out.println(genre);

输出:

Drama, War

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM