# Java + XML auslesen w3c dom



## sivy (6. Juli 2009)

Hallo!

Ich brauche eure Hilfe. Die Frage ist warscheinlich banal aber ich krig es irgedwie nicht hin. 

So sieht Teil von xml-datei. Ich versuche Url von 
<image type="poster" size="cover"  auszulesen.

```
<movie>
      <score>0.0324976406991482</score>
      <popularity>2</popularity>
      <name>The Matrix Revisited</name>
      <alternative_name></alternative_name>
      <type>movie</type>
      <id>14543</id>
      <imdb_id>tt0295432</imdb_id>
      <url>http://www.themoviedb.org/movie/14543</url>
      <rating>0.0</rating>
      <overview>The film goes behind the scenes of the 1999 sci-fi movie The Matrix. </overview>
      <released>2001-11-20</released>
      <images>
        <image type="poster" size="original" url="http://images.themoviedb.org/posters/14197/The_Matrix_Revisited.jpg" id="14197"/>
        <image type="poster" size="cover" url="http://images.themoviedb.org/posters/14197/The_Matrix_Revisited_cover.jpg" id="14197"/>
        <image type="poster" size="thumb" url="http://images.themoviedb.org/posters/14197/The_Matrix_Revisited_thumb.jpg" id="14197"/>
        <image type="poster" size="mid" url="http://images.themoviedb.org/posters/14197/The_Matrix_Revisited_mid.jpg" id="14197"/>
      </images>
    </movie>
```

so lese ich andere Sachen aus.


```
DocumentBuilderFactory dbf =
		            DocumentBuilderFactory.newInstance();
		        DocumentBuilder db = dbf.newDocumentBuilder();
		        InputSource is = new InputSource();
		        is.setCharacterStream(new StringReader(filmXML));

		        Document doc = db.parse(is);
		        
		        
		        
		        NodeList nodes = doc.getElementsByTagName("movie");
 for (int i = 0; i < nodes.getLength(); i++) {
		        	
		        	FilmBean film = new FilmBean();
		           Element element = (Element) nodes.item(i);
		           
		           
		           NodeList title = element.getElementsByTagName("name");
		           Element line = (Element) title.item(0);
		           film.setTitle(getCharacterDataFromElement(line));
		           
		           NodeList id = element.getElementsByTagName("id");
		           line = (Element)id.item(0);
		           film.setId(getCharacterDataFromElement(line));


public static String getCharacterDataFromElement(Element e) {
	    Node child = e.getFirstChild();
	    if(child != null){
	    if (child instanceof CharacterData) {
	       CharacterData cd = (CharacterData) child;
	       return cd.getData();
	    }
	    }
	    return "?";
	  }
```


Wie mache ich es mit <images>?

Grüße,
Si


----------



## zeja (7. Juli 2009)

Genauso. Wenn du das Bild anzeigen willst kannst du dann ja eines aus der URL erstellen.


----------



## sivy (7. Juli 2009)

Wenn das "genauso" wäre hätte ich hier nicht gefragt. Hat jemand noch andere vorschläge für mich? Bild anzeigen interesiert mich nicht weil das grerade nicht mein Problem ist.

Viele Grüße,
SI


----------



## zeja (7. Juli 2009)

Ja dann verstehe ich nicht wo das Problem ist? Bekommst du eine Exception oder so?


----------



## Oliver Gierke (7. Juli 2009)

Wo ist das Problem? Du selektierst den images knoten, iterierst über alle Subelemente mit dem Namen image und greifst dir die url-Attribute raus. Btw. XPath ist dein Freund: //image/@url selektiert dir alle url-Attribute von image-Elementen des gesamten Dokuments.

REINHAUN!


----------



## sivy (7. Juli 2009)

solche Antwort wolle ich bekommen  

vielen Dank hats geklappt! Ich hatte irgendwie Gehirnblokade


----------

