J'ai le fichier XML suivant:
soup = BeautifulSoup(open("path/to/xmlfile"), features="xml") with open('path/to/outputfile', 'a') as f: for i in range(len(soup.findall('active-user-name'))): f.write ('%s\t%s\t%s\t%s\n' % (soup.findall('active-user-name')[i].text, soup.findall('authentication-realm')[i].text, soup.findall('user-roles')[i].text, soup.findall('login-node')[i].text))
3 Réponses :
La solution est simple: n'utilisez pas Pourquoi? Parce qu'il n'y a pas de méthode Cependant, je suis d'accord, le message d'erreur est déroutant. p>
espère que cela aide. p> Restacletall code> méthode - Utilisez
Find_All code>. P>
retranchée code>, il existe
Restacletall code> et
Find_All code>, qui sont équivalents. Voir Docs pour plus d'informations. P>
merci, remplacez la suite avec Find_all et c'est ce que je veux
Il y a un certain nombre de problèmes à traiter avec cela, le premier est que le fichier XML que vous avez fourni n'est pas valide XML - un élément racine est requis.
Essayez quelque chose comme ceci comme xml: p> maintenant sur le python. Tout d'abord, il n'y a pas de méthode code> (code> (code>, il est soit Suivant up, je vous suggère de modifier votre code pour que vous n'utilisiez pas la méthode espère que cela aide cela aide. Faites-moi savoir si vous avez besoin d'une aide supplémentaire! P> P> Findall code> ou
recherche_all code>.
RÉSUCTALL code> et
Find_All code> sont équivalents, comme documenté Ici p>
Find_All code> assez souvent - en utilisant
trouver Code> Aura lieu améliorera l'efficacité, en particulier pour les gros fichiers XML. De plus, le code ci-dessous est plus facile à lire et à déboguer: p>
La solution pour ma version de ce problème consiste à contraindre la magnifique instance dans une chaîne de type. Vous suivez cela suivant: https://groups.google.com/forum/#!Topic /comp.lang.python/ymrea29fmfi p>
Vous utilisez le pythonic suivant: Du manuel Python P>
str ([objet]) p>
Renvoie une chaîne contenant une représentation joliment imprimable d'un objet. Pour les chaînes, cela retourne la ficelle elle-même. La différence avec REC (objet) est que STR (objet) ne tente pas toujours de renvoyer une chaîne acceptable pour eval (); Son objectif est de rendre un Chaîne imprimable. Si aucun argument n'est donné, renvoie la chaîne vide, p>