2017-03-26 4 views
0

Meine XML-Datenbank extrahieren ist wie folgt:xml FINDTEXT alle Elemente

<dict> 
    <word id=""> 
    <sense> 
     <ids></ids> 
     <defs></defs> 
    </sense> 
    <sense> 
     <ids></ids> 
     <defs></defs> 
    </sense> 
    </word> 
</dict> 

ich alle Sinne eines bestimmten Wortes A extrahieren möchten, dies ist mein Code:

dic = etree.parse("data.xml") 
for word in dic.xpath("/dict/word"): 
    MA = word.get("id") 
    if MA == u'قطار': 
    for elemt in word.findtext('sense/defs'): 
     definition = elemt 
     MonFichier.write(definition.encode("utf-8")) 

Das Problem Ist dieser Code schreibt nur den letzten Sinn, nicht alle Sinne eines gegebenen Wortes. Dies ist das erste Mal, dass ich Python benutze, und ich konnte keine Lösung finden.

Antwort

0

nicht sicher, ob ich die Frage 100% verstehen, aber Sie so etwas wie dies versuchen könnten:

words = etree.parse("data.xml").findall(u'.//word[@id="قطار"]') 
for word in words: 
    for elemt in word.findall('sense/defs'): 
     MonFichier.write(elemt.encode("utf-8")) 
+0

Nein, es funktioniert nicht !!! – rim