NullPointerException bei leerem Element

Status
Nicht offen für weitere Antworten.
Moin!

Ich bin absoluter Anfänger in Sachen XML. Ich möchte eine XML Datei auslesen, was auch klappt. Aber wenn ein Element keinen Inhalt hat, klappts nicht. Dann gibts immer ne NullPointerException. Is ja auch logisch.

Es gibt in meiner XML nämlich ein Element "Statements", dass nicht zwangsläufig einen Inhalt hat.

Aber wie stelle ich das denn fest, damit ich entsprechend darauf reagieren kann? Hoffe ihr rafft, was ich meine ???:L

Hier ein Auszug aus meinem Prog:

Code:
public void auswertung()

{

int a, anz_untertags,b;

NodeList tagliste=document.getElementsByTagName 

("Player");

NodeList ChildTags;

int anz=tagliste.getLength();

Node das_tag;

String inhalt="";

short TagTyp;

for (a=0; a<anz; a++)

{

ChildTags=tagliste.item(a).getChildNodes();

anz_untertags=ChildTags.getLength();

for (b=0; b<anz_untertags; b++)

{ 

das_tag=ChildTags.item(b);

TagTyp=das_tag.getNodeType();

if (TagTyp==Node.ELEMENT_NODE)

{

inhalt=inhalt + das_tag.getFirstChild

().getNodeValue() + "\t\t";

}

}

fenster.ausgabe(inhalt);

inhalt="\n";

}

}

Die XML-Datei sieht wie folgt aus:

Code:
<Player Index="0">
				<PlayerID>1234567</PlayerID>
				<PlayerName>Max Mustermann</PlayerName>
				<PlayerNumber>100</PlayerNumber>
				<Age>29</Age>
				<MarketValue>2990000</MarketValue>
				<TSI>2990</TSI>
				<PlayerForm>7</PlayerForm>
				<Statement></Statement>
				<Experience>4</Experience>
				<Leadership>3</Leadership>
				
				<Salary>11040</Salary>
				<IsAbroad>1</IsAbroad>
				
				<Agreeability>3</Agreeability>
				<Aggressiveness>3</Aggressiveness>
				<Honesty>3</Honesty>
				
					<LeagueGoals>2</LeagueGoals>
					<CupGoals>4</CupGoals>
					<FriendliesGoals>0</FriendliesGoals>
					<CareerGoals>41</CareerGoals>
					<CareerHattricks>4</CareerHattricks>
				
				<Specialty>0</Specialty>
				<TransferListed>0</TransferListed>
				<NationalTeamID>0</NationalTeamID>
				<CountryID>40</CountryID>
				<Caps>0</Caps>
				<CapsU20>0</CapsU20>
				
					<Cards>0</Cards>
					<InjuryLevel>-1</InjuryLevel>
				
					<StaminaSkill>8</StaminaSkill>
					<KeeperSkill>2</KeeperSkill>
					<PlaymakerSkill>5</PlaymakerSkill>
					<ScorerSkill>7</ScorerSkill>
					<PassingSkill>7</PassingSkill>
					<WingerSkill>4</WingerSkill>
					<DefenderSkill>3</DefenderSkill>
					<SetPiecesSkill>4</SetPiecesSkill>
				
				
			</Player>

Danke schon ma vorab! :applaus:
 
R

Roar

Gast
lern mal deinen code zu formatieren das kann ja kein mensch lesen
überprüfe halt vorher ob getNodeValue() null oder "" zurückleifert.
 
Sorry, die Formatierung isn bisschen durcheinander geraten. Is sonst auch nich meine Art.
Und das mit dem getNodeValue() auf null überprüfen hatte ich ja auch schon gemacht, aber ich muss da wohl was falsch machen. Hab mir vorerst ma mit ner try catch Klausel geholfen. Das kann aber ja nich Sinn der Sache sein. Wenigstens kann ich aber erstma weitermachen. Hier der Part den ich ergänzt hab:

Code:
try {

    if (das_tag.getFirstChild().getNodeValue() == null) {         // Hier muss was falsch sein!
	
        inhalt += "---\t\t";
    }

    else {

        inhalt=inhalt + das_tag.getFirstChild().getNodeValue() + "\t\t";

    }

}

catch (NullPointerException e) {
	
    //inhalt += "---\t\t";         Wenn ich diese Zeile wieder freigebe, dann läufts so wie ich will.
}
 

Bleiglanz

Gesperrter Benutzer
das_tag.getFirstChild().getNodeValue()

mach halt erst getfirstChild, prüfe das auf null und rufe danach erst die Methode getNodeValue auf?

Code:
Node child=null;
if(null!=(child=das_tag.getFirstChild())){
    // machwas
}
 
Danke! So wollt ichs haben :D
Hatte gedacht, dass ich erst mit getNodeValue() auf null prüfen kann. Naja, bin halt noch neu auf dem Gebiet.
:applaus:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M ..item(i).getNodeValue() => Nullpointerexception XML & JSON 9
J JAXB NullPointerException im ContextFinder XML & JSON 6
P NullPointerException beim Auslesen XML & JSON 8
M NullPointerException bei Einlesen XML XML & JSON 3
8u3631984 jaxb XML Mapper - Root Element mit Attribut XML & JSON 20
B DOMParser - Element filtern XML & JSON 1
N jdom2 - Referenz auf Nested Element XML & JSON 2
H XML Element `Class` wird nicht gelesen XML & JSON 2
F xml Element ersetzen XML & JSON 5
M Text eines Elements in XML Datei mit JAVA bearbeiten und kompletten Element-Zweig hinzufügen XML & JSON 16
W XML-Element komplett löschen XML & JSON 5
L XML nur ein Element einlesen XML & JSON 2
R XSD in einer choice mehrmals das selbe element möglich XML & JSON 5
S JDom XML ein Element hinzufügen. XML & JSON 1
ARadauer xsd ref auf element oder typen verwenden? XML & JSON 2
R cvc-complex-type.3.2.2: Attribute 'uuid' is not allowed to appear in element 'jasperReport'. XML & JSON 4
F EMF, XSD to ECore mapping, Attribute vs. Element XML & JSON 2
C xml validierung gegen xsd mit jdom: Fehlermeldung Cannot find the declaration of element ... XML & JSON 8
Landei JAXB: Wert von übergeordneten Element XML & JSON 4
N Alle namespaces ins Root Element hinauf ziehen XML & JSON 2
N Alle namespaces ins Root Element hinauf ziehen XML & JSON 2
S Validierung mit JAXB2 ohne root-element XML & JSON 10
E xml Element sortieren XML & JSON 2
T Xpath & JDOM Element Pfad ausgeben XML & JSON 2
Z XML parsen - Element mit Werten XML & JSON 2
enne87 Element-Werte werden falsch ausgelesen XML & JSON 2
M XSD - Child Element möglich, aber nicht zwingend erforderlich XML & JSON 6
N Individuelles Wrapper-Element um Collection mit JAXB XML & JSON 6
W Element mit XPath @id ermitteln wenn nur ein teil der id bekannt ist XML & JSON 2
R Element - Ausgeben von Kommentar XML & JSON 4
L Element manipulieren in einem DOMResult per XPath XML & JSON 10
G mit Transformer.transform ein Element überschreiben XML & JSON 2
G XSL: Element über eine Variable ermitteln XML & JSON 4
sparrow JDom Element.getChild("Name") liefert null obwohl vorhanden XML & JSON 4
B XML-Element als String ausgeben XML & JSON 5
L Element einlesen <Telefon name="Karl">134313 XML & JSON 2
S Cannot find the declaration of element XML & JSON 2
M Jaxb Annotationen, Wert als XML Element XML & JSON 2
O XML Element mit ":" im Namen XML & JSON 23
G Element mit Text und Unterelement XML & JSON 2
S Ampersand im Jdom-Element XML & JSON 2
C jdom.Element nicht vorhanden? XML & JSON 4
W JDOM element ändern funzt nich :( [problem gelöst] XML & JSON 3
M XML einlesen - prüfen ob Element vorhanden XML & JSON 2
F choice-Element mit minOccurs=0" XML & JSON 11
X Xpath, alle Element die mit "user" beginnen auswäh XML & JSON 2
C Mehrere Element_Nodes zusammenfassen zu einem Element XML & JSON 9
K Auf bestimmtes Element im XML zugreifen XML & JSON 3
M JDOM und XPath, zu Element zugehörigen XPath-Ausdruck XML & JSON 5
H Adapter: String->Element bzw. Element->String XML & JSON 6
M JDOM Element ohne Inhalt kopieren ? XML & JSON 3
S String in element casten XML & JSON 2
S Element hinzufügen XML & JSON 2
B Element an bestimmter Stelle einfügen (JDOM) XML & JSON 8
S zum element Attribut xmlns zufügen XML & JSON 6
N bestimmtes Element auslesen - ich verzweifel XML & JSON 3
J [Newbie] [JDOM] Element aus XML entfernen klappt nicht XML & JSON 4
P [Solved] XSL: Element-Variable auslesen XML & JSON 2
Noar XSLT - Element-Wrapping XML & JSON 2
R JDOM Root-Element entfernen aber Rest behalten XML & JSON 10
S Element addContent(Element) gibts nicht XML & JSON 5
R node.getNodeValue() bringt mir komplettes CDATA-Element XML & JSON 3
W Element Liste in Root XML & JSON 5
D Text, String vor einem Root Element einfügen XML & JSON 2
W root element parsen,Hilfe! XML & JSON 5
E Element.setTextContent(String); Ersatz fuer Version 1.4? XML & JSON 3
D XML: Element section content does not follow the DTD XML & JSON 6
clemson element mit id in jdom löschen XML & JSON 2
A Element an einer bestimmten Stelle einfügen (nicht am Ende) XML & JSON 4
R JDom: XML Code von Element, und: ist Element ein standalone XML & JSON 2

Ähnliche Java Themen

Neue Themen


Oben