J'essaie d'analyser XML avec Python mais ne pas aller très loin. Je pense que c'est due à un mauvais arbre XML que cette API revient.
C'est donc ce qui est renvoyé par la demande d'obtention: p> La demande d'obtention va ici: P > xml.parsers.expat.ExpatError: junk after document element: line 1, column 18
3 Réponses :
Un document XML est composé de un élément de document de niveau supérieur em>, puis plusieurs sous-éléments multiples. Votre fragment XML contient plusieurs éléments de niveau supérieur, qui n'est pas autorisé par la norme XML. Essayez de retourner quelque chose comme: p> J'ai enveloppé toute la réponse dans un < code>
Le problème est que je n'ai pas de contrôle sur le fichier XML. Si vous regardez la réponse que vous obtenez lorsque vous visitez l'URL i Publié sur top, c'est tout ce que je dois travailler avec. Si non possible avec XML, comment pourrais-je le faire? Merci, max
Dans ce cas, prenez la réponse que vous obtenez de l'URL à l'aide de url.read () code>, appuyez sur une balise appropriée telle que minidom.parsestring () code> fonction.
Le problème principal ici est que le code XML étant renvoyé par ce service n'inclut pas un nœud racine, qui n'est pas valide. J'ai corrigé cela en enveloppant simplement la sortie dans un noeud Vous pouvez utiliser n'importe quel analyseur que vous souhaitez, mais ici j'ai utilisé WELETREEE pour obtenir la valeur . p> p>
Cette erreur se produit lorsque les données XML ne proviennent pas comme prévu dans le format. Dans mon cas, c'est arrivé parce que le jeton de l'API a expiré et il donnait des données XML qui ne peuvent pas être analysées. P>
Alors je suggère, vérifiez vos données et voyez si les données sont correctes ou non. P>
Ne devrait-il pas être "code = xml.getelementsbytagname ..."?
Whoops, Yeh Néanmoins, le script échoue quand il s'agit d'analyser. Comme Greg a signalé en raison d'un XML invalide, mais je ne peux pas contrôler le contenu du XML ...
Je ne suis pas encore vraiment là-bas, mais je ne trouve que dans la documentation indiquant qu'un élément de nœud a une variable de données. Les objets de commentaire ont cela, mais ce n'est pas un commentaire. Ne devriez-vous pas utiliser NODEVALUE?