[英]Can't parse XML (from web) using JSoup
我正在尝试处理从Web发送的小型XML
文件,并从中解析一些属性。 我将如何在JSoup
解决这个JSoup
? 我知道它不是XML
解析器,而是HTML
解析器,但它也支持XML
,我不必构建任何Handlers,BuildFactories等,而我必须在DOM
, SAX
等中构建。
这是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个问题:
XML
内容的同时,您提供URL
的String
表示,您应该使用parse(InputStream in, String charsetName, String baseUri, Parser parser)
代替将XML解析为输入流。 XML
没有元素genre
, genre
是元素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.