2011-10-20 292 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 ..}}」部分提取文本。 –