2011-10-20 247 views
0

我正在使用etree模块。我试图提取有关<text ...>标签的信息。这里是my XML file。我想如果<text ...">{{Infobox film开始Infobox film然后复制{{ }}之间的所有文字。可能吗?感谢从XML中提取信息

更新:XML文件更新

回答

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选项,这意味着.匹配换行符以及任何其他角色。 .*?的两个实例是任何charcter的非贪婪匹配 - 即它们将找到零个或更多个字符的最短段,直到表达式的其余部分可以匹配。

+0

谢谢但是,如果''标签有'信息框电影'值,然后打印文本标签的内容,我想。 –

+0

已更新XML文件。工作正常。非常感谢:-) –

+0

@ user559744:我已经更新了我的答案,以展示如何从“{{Infobox film ..}}”部分提取文本。 –