En Python - l'Analyse d'un fichier xml de réponse et de trouver un texte spécifique vaule
Je suis nouveau sur python et je vais avoir un moment particulièrement difficile de travailler avec xml et python. La situation que j'ai est cela, je suis en train de compter le nombre de fois où un mot apparaît dans un document xml. Assez Simple, mais le document xml est une réponse à partir d'un serveur. Est-il possible de le faire sans l'écrire dans un fichier? Il serait bon d'essayer de le faire de mémoire.
Voici un exemple de code xml:
<xml>
<title>Info</title>
<foo>aldfj</foo>
<data>Text I want to count</data>
</xml>
Voici ce que j'ai en python
import urllib2
import StringIO
import xml.dom.minidom
from xml.etree.ElementTree import parse
usock = urllib.urlopen('http://www.example.com/file.xml')
xmldoc = minidom.parse(usock)
print xmldoc.toxml()
- Delà de Ce point, j'ai essayé d'utiliser StringIO, ElementTree, et minidom pas de succès et j'ai obtenu à un point où je ne suis pas sûr de ce que d'autre à faire.
Toute aide serait grandement appréciée
OriginalL'auteur Jason | 2011-10-05
Vous devez vous connecter pour publier un commentaire.
C'est très simple, aussi loin que je peux dire:
Donc pour compter les occurrences d'une chaîne de caractères, essayez ceci (un peu condensé, mais j'aime les one-liners):
OriginalL'auteur Blender
Si vous essayez juste de compter le nombre de fois où un mot apparaît dans un document XML, il suffit de lire le document en tant que chaîne et de faire un count:
Sinon, vous pouvez simplement parcourir les balises que vous êtes à la recherche pour:
Bien que cela fonctionne pour certains mots, il manque à la présence d'entités XML.
wow, je devrais eu un. Je pourrais peut-être utiliser cet être la réponse xml est de ne pas répétitif
Eh ben, beaucoup de haine aujourd'hui. L'OP n'est en l'état il est "d'essayer de compter le nombre de fois où un mot apparaît dans un document xml." J'ai changé le comte de la chaîne de ne pas être la même que la balise exemple qu'il a donné.
pas de la haine ... mais à l'aide d'un simple count() dans un document xml est clairement dangereux et enclin à vous donner de mauvaises réponses ... et vous ne savez pas quand ils sont mauvais ... d'où l'emphatique commentaire
OriginalL'auteur Derek Springer
Cela aide ...
Je ne suis pas le faire tous ses devoirs ... à partir de là, il peut comprendre d'utiliser findall lui-même ...
OriginalL'auteur donkopotamus
Il suffit de remplacer la chaîne "compter" avec quel que soit le mot que vous souhaitez compter. Si vous voulez compter les phrases, puis vous devrez vous adapter ce code, comme c'est de comptage de mots. Mais de toute façon, la réponse à comment obtenir à tout le texte incorporé est
XML('<your xml string here>').itertext()
OriginalL'auteur John Gaines Jr.