# JDom Element.getChild("Name") liefert null obwohl vorhanden



## sparrow (1. Okt 2009)

Hallo Forum,

ich habe gerade ein geistiges Blackout.

Folgende Situation: Ich möchte gerne eine KML-Datei (GoogleEarth-Kram) auseinander nehmen und auf die einzelnen Elemente der Datei zugreifen. Das ist ja nur XML.

In der Regel arbeite ich bei so etwas mit JDOM, ich finde das nämlich extrem einfach 

Folgendes seltsames Verhalten offenbart sich im Augenblick:


```
Element ele_timestamp = e.getChild("TimeStamp");
```
 soll mit das entsprechende Kind-Element namens "TimeStamp" liefern. Tut es aber nicht obwohl es vorhanden ist.


Also habe ich folgendes versucht:

```
Element ele_timestamp = e.getChild("TimeStamp");
                if (ele_timestamp == null) {
                    System.out.println("TS null");
                    List children_ls = e.getChildren();
                    for (int i = 0; i < children_ls.size(); i++) {
                        Element el = (Element) children_ls.get(i);
                        System.out.println(el.getName() + " " + el.getNamespacePrefix());
                    }
                }
```
Und das bringt folgende Ausgabe:





> TS null
> name
> description
> TimeStamp
> ...



Da steht doch aber, dass unter den Children das Child "TimeStamp" vorhanden ist. Aber warum liefert mir .getChild() immer einen Nullpointer?

Hier die Stelle aus der Datei:
[xml]  <Placemark>
    <name>29.09.2009 00:01:20</name>
    <description>
    <![CDATA[
      H&auml;lt<br/>
    ]]>
    </description>
	  <TimeStamp id="1">
	  	<when>2009-09-29T00:01:20+0200</when>
	  </TimeStamp>
    <visibility>1</visibility>

    <styleUrl>#greenCarStoppedStyleMap</styleUrl>

    <Point>
      <extrude>0</extrude>
      <altitudeMode>clampedToGround</altitudeMode>
      <coordinates>11.0248811666667,38.8619663166667,0</coordinates>
    </Point>
    <LookAt>
      <heading>0</heading>
      <tilt>0</tilt>
      <range>5000</range>
      <latitude>38.8619663166667</latitude>
      <longitude>11.0248811666667</longitude>
    </LookAt>   
  </Placemark>[/xml]

Ich danke für euere Hilfe.


Sparrow


----------



## SlaterB (1. Okt 2009)

mach ein equals mit deinem String in der Schleife


----------



## sparrow (1. Okt 2009)

Aber schön ist das irgendwie nicht...


----------



## SlaterB (1. Okt 2009)

Ziel war von mir auch, dass beim equals false rauskommt und du daher erkennst, dass die Namen wirklich nicht übereinstimmen,
wegen Leerzeichen, Kodierung oder was auch immer,

aber funktioniert? wenn ja, dann weiß ich erstmal nicht weiter,
was ist das eigentlicht für eine API, gibts da den Quellcode?
intern wird je vielleicht auch nur eine Liste durchlaufen


----------



## sparrow (1. Okt 2009)

Ahso... ja funktioniert.
Das scheint aber irgend eine größere Sache zu sein. Ich kann tatsächlich die Listen durchgehen und kann vergleichen. Also es geht tatsächlich.
Allerdings kann ich auch nicht auf den Text der einzelnen Elemente zugreifen sonder bekomme dann statt dem normalen Text Eine Reihe von Leerzeichen und Zeilenumbrüchen zurück.
Ich habe auch schon probiert die Datei zu kürzen um ein Problem mit der Größe auszuschließen, aber das hat leider auch keinen Erfolg gebracht.

Jetzt könnte es noch die Kodierung der XML-Datei sein. Aber ich glaube da schau ich mir lieber an was Java mit Bordmitteln umsetzen kann und ob es dabei zu vergleichbaren Fehlern kommt.





Trotzdem vielen Dank!


----------

