从XML中提取信息

时间:2011-10-20 10:57:43

标签: python xml

我正在使用etree模块。我正在尝试提取<text ...>标记周围的信息。这是my XML file。我希望<text ...">{{Infobox filmInfobox film开头,然后复制{{ }}之间的所有文字。可能吗?感谢

更新:更新了XML文件

1 个答案:

答案 0 :(得分:2)

以下代码段应该符合您的要求:

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)

正则表达式以(?s)开头,它打开DOTALL选项,这意味着.匹配换行符以及任何其他字符。 .*?的两个实例是任何字符的非贪婪匹配 - 即它们将找到零个或多个字符的最短时间段,直到表达式的其余部分可以匹配。