L'extrait suivant devrait faire ce que vous voulez:
import re
from xml.etree import ElementTree
with open('films.xml') as f:
xml = ElementTree.parse(f)
for t in xml.findall('.//{http://www.mediawiki.org/xml/export-0.5/}text'):
print '===================='
m = re.search(r'(?s).*?{{(Infobox film.*?)}}', t.text)
if m:
print m.group(1)
L'expression régulière, il commence par (?s)
, qui tourne sur l'option DOTALL
, ce qui signifie que .
matchs retour à la ligne ainsi que tout autre personnage. Les deux instances de .*?
sont des correspondances non gourmandes de n'importe quel caractère, c'est-à-dire qu'elles trouveront l'extension la plus courte de zéro ou plusieurs caractères jusqu'à ce que le reste de l'expression puisse être apparié.
Merci Mais je veux que si la balise ' 'a des valeurs' film d'infobox', alors imprimez le contenu de la balise de texte. –
Fichier XML mis à jour. Fonctionne bien. Merci beaucoup :-) –
@ user559744: J'ai mis à jour ma réponse pour montrer comment extraire le texte de la section '{{Infobox film ..}}'. –