是否有一些简单的方法可以将imdb影片的摘要作为Java程序中的String值获取。我有一个包含imdb-id的程序,我想在我的应用程序中显示该电影的故事情节。
我不知道imdb是否有某种简单的方法可以做到这一点。因为我在使用xml时遇到了一些麻烦。
答案 0 :(得分:1)
我更喜欢JAXB,这就是你用JAXB做的:
public static void main(String[] args) throws Exception {
InputStream stream = new FileInputStream("imdb.xml"); // use your stream source
JAXBContext ctx = JAXBContext.newInstance(Root.class);
Unmarshaller um = ctx.createUnmarshaller();
JAXBElement<Root> imdb = um.unmarshal(new StreamSource(stream), Root.class);
System.out.println(imdb.getValue().movie.plot);
}
public class Root {
@XmlElement(name="movie")
public Movie movie;
}
public class Movie {
@XmlAttribute(name="plot")
public String plot;
// Add fields for other attributes you want to read
}
答案 1 :(得分:0)
当我有小的xml文件时,我通常更喜欢DOM解析器。
这是做你想做的事的一种方式。我打印了这些值,但您可以将它们存储在字符串或任何适合您需要的值中。
try {
File fXmlFile = new File("your_xml_here.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("movie");
/*
* This for is if you have more than one movie in an xml. If not you
* could just do the Node nNode = nList.item(0)
*/
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
System.out.println("Title : " + eElement.getAttribute("title"));
System.out.println("Year: " + eElement.getAttribute("year"));
// here is your plot
System.out.println("Plot: " + eElement.getAttribute("plot"));
}
}
} catch (Exception e) {
e.printStackTrace();
}
输出:
标题:愤怒7
年份:2015年 情节:Dominic Torretto和他的团队认为......