J'ai quelques fichiers sgml qui sont normalisés à peu près. Cependant, il peut y avoir des données contenues dans un tag que je ne connais pas avant d'ouvrir le fichier et de le lire personnellement. Par exemple, les fichiers ont des adresses et généralement les adresses ont une rue, une ville, un état, un zip et un téléphone. Chaque élément de l'adresse est indiquée par une baliseUtilisation de lxml pour extraire des données où tous les éléments ne sont pas connus à l'avance
<ADDRESS>
<STREET>One Main Street
<CITY>Gotham City
<ZIP>99999
<PHONE>555-123-5467
</ADDRESS>
Mais, par exemple, je l'ai découvert qu'il ya des balises pour Country, STREET1, STREET2. J'ai plus de 200K fichiers à traiter et je veux savoir s'il est possible de retirer tous les éléments des adresses sans avoir à se soucier de connaître l'existence de balises inconnues.
Ce que je l'ai fait jusqu'à présent est
h=fromstring(my_data_in_a_string)
for each in h.cssselect('mail_address'):
each.text_content()
mais ce que je reçois est problématique parce que je ne peux pas identifier où un élément se termine et la suivante commence
One Main StreetGotham City99999-123-5467
Donc, vous voulez obtenir toutes les balises présentes dans le fichier? – user225312
Eh bien oui et non. Tout d'abord obtenir tous les tags dans un fichier serait bien, mais je voudrais aussi obtenir tous les tags dans la section ADRESSE du fichier – PyNEwbie
Je suis confus - votre entrée est SGML, mais vous avez accepté une réponse qui implique l'analyse XML - ont vous avez trouvé un moyen de convertir votre SGML en XML en premier? Si oui, je pourrais utiliser votre technique! :) –