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 .. p> , puis mon code: p> si j'utilise pour (int = 0; int <1;) je reçois la sortie suivante qui fonctionne bien: p> Cependant, le moment je passe à (int = 0; int <2; ) Je reçois la sortie suivante: p> Qu'est-ce que je manque? p> merci! p> p>
3 Réponses :
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();
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 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 condition = telement.getelementsbytagname ("titre"). Article (i) .getTextContent ( ); code> deviendrait ceci: p> i code> dans .Item (i) code> dans ce cas. Donc, cette réponse vise davantage à vous aider à comprendre la prochaine fois. P> P>
l'a compris. J'avais besoin d'une autre variable pour les sous-nœuds. Cela fonctionne bien maintenant.
Voici le code de travail: comme une note latérale, au lieu d'utiliser la variable V, j'aurais pu simplement les définir sur 0. P> P>
Avez-vous débogué cette ligne pendant la deuxième boucle pour vérifier quelle valeur est null?
Un de votre titre dans
mainterm code> 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.