imdb 仅获取电影摘要 java (xml)

imdb get only movie summary java (xml)

有没有一些简单的方法可以在 Java-programm 中获取 imdb 电影的摘要作为字符串值。我有一个包含 imdb-id 的程序,我希望在我的应用程序中显示该电影的故事情节。

我不知道 imdb 是否有某种简单的方法可以做到这一点。因为我在使用 xml.

时遇到了一些麻烦

http://www.omdbapi.com/?i=tt2820852&plot=full&r=xml

当我有小 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();
    }

输出:

Title : Furious 7
Year : 2015
Plot : Dominic Torretto and his crew thought...

我更喜欢 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
}