0
votes

Null pointeur sur la 2e boucle via XML?

Je suis nouveau à Java / XML et j'essaie d'analyser un document XML. Je peux naviguer dans les nœuds et obtenir les éléments du premier nœud que je suis intéressé mais dès que j'essaie de passer par le deuxième nœud, je reçois une exception de pointeur nulle.

Voici un échantillon de xml .. xxx

, puis mon code: xxx

si j'utilise pour (int = 0; int <1;) je reçois la sortie suivante qui fonctionne bien: xxx

Cependant, le moment je passe à (int = 0; int <2; ) Je reçois la sortie suivante: xxx

Qu'est-ce que je manque?

merci!


7 commentaires

Avez-vous débogué cette ligne pendant la deuxième boucle pour vérifier quelle valeur est null?


Un de votre titre dans mainterm pourrait être manquant.


Avez-vous déjà quitté la fin du fichier XML?


@ FXGuy1 Sous votre question Il y a un Modifier le lien afin que vous puissiez ajouter de telles informations.


@ FXGuy1 Aussi en outre de débogage Aide: Créez un fichier avec seulement deux entrées et voyez si l'erreur persiste. Si oui, commencez à supprimer des trucs que vous sautez actuellement. Si le problème persiste, postez cet exemple raccourci (minimal).


Merci! Je vais lui donner un coup.


OK, a mis à jour le message d'origine pour utiliser une version abrégée du fichier. Obtenir toujours les mêmes résultats. Itère à travers la lettre une amende, mais des erreurs d'essayer d'essayer de gêner le nœud B.


3 Réponses :


2
votes

cause possible. Vous utilisez l'index i pour faire référence à un élément "title". Mais l'index i est ce que vous utilisiez pour boucler dans les éléments "lettre". Si vous voulez juste le premier titre, remplacez-le I avec un 1 dans la ligne suivante:

condition = tElement.getElementsByTagName("title").item(i).getTextContent();


0 commentaires

3
votes

en général pour trouver un pointeur nul dans une ligne Changez tous les appels dans cette ligne dans leur propre ligne.

donc ce condition = telement.getelementsbytagname ("titre"). Article (i) .getTextContent ( ); deviendrait ceci: xxx

De cette façon, vous verrez laquelle des différentes parties provoque l'exception et vous pouvez réduire votre recherche. Comme Colm mentionné dans sa réponse Votre erreur est probablement l'utilisation de i dans .Item (i) dans ce cas. Donc, cette réponse vise davantage à vous aider à comprendre la prochaine fois.


0 commentaires

0
votes

l'a compris. J'avais besoin d'une autre variable pour les sous-nœuds. Cela fonctionne bien maintenant. Voici le code de travail: xxx

comme une note latérale, au lieu d'utiliser la variable V, j'aurais pu simplement les définir sur 0.


0 commentaires