Je traite un DomDocument qui est essentiellement le résultat XML d'un service Web SOAP. Pour vous donner une idée, voici à quoi ça ressemble
...<ParentNode><ChildNode><output><escaped<string</ChildNode></ParentNode>...
Oui, la valeur de ChildNode est une chaîne qui a été échappée en sortie et est un fichier XML contenu dans ce fichier XML. Je fais le traitement habituel de DomDocument tel que
NodeList rows = dom.getElementsByTagName(ChildNode);
for(int i=0;i<rows.length;i++)
{
System.out.println(rows[i].getParentNode()); // returns ParentNode
System.out.println(rows[i].getNodeName()); // returns ChildNode
System.out.println(rows[i].getNodeValue()); // returns null
}
Une fois que vous avez inspecté le code ci-dessus, vous vous êtes rendu compte que, même si le noeud renvoie des valeurs correctes pour ParentNode et le noeud NodeName, il renvoie une valeur null lors de l'accès à getNodeValue (). Il y a une chaîne ici, et je peux le voir dans la sortie de ma console. Mais je ne suis pas sûr de la ruse qui me manque ici, est-ce que la sortie qui s’échappe gâche le problème d’une manière particulière?
Merci, Parijat
Vous voulez getTextContent()
plutôt que getNodeValue()
- ce dernier renvoie toujours null pour les nœuds d'élément.
Au lieu de
rows[i].getNodeValue()
utilisation
rows[i].getNodeValue().getChildNodes().item(0).getNodeValue()