2015-04-23 2 views
0

Есть ли простой способ получить резюме фильма imdb как значение String в Java-программе. У меня есть программа, содержащая imdb-id, и я хочу, чтобы сюжетная линия этого фильма была показана в моем приложении.imdb получить только просмотр фильма java (xml)

Я не знаю, имеет ли imdb какой-то простой способ сделать это. Потому что у меня есть проблемы с использованием xml.

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

+0

У вас проблемы с анализом xml, или это проблема понимания? – CodeFox

+0

проблема понимания, мне нужно создать новый класс или что-то еще? – fangio

+0

У вас есть xml-файл для фильма? Или вы хотите найти способ получить один –

ответ

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 
} 
0

Я обычно предпочитаю DOM парсер, когда у меня есть небольшие XML-файлы.

Это один из способов сделать то, что вы хотите. Я напечатал значения, но вы можете хранить их в строках или в соответствии с вашими потребностями.

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(); 
    } 

Выход:

Название: Furious 7
Год: 2015
Участок: Dominic Torretto и мысль его экипажа ...

 Смежные вопросы

  • Нет связанных вопросов^_^