xml findtext提取所有元素

时间:2017-03-26 18:40:45

标签: python

我的xml数据库是这样的:

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

我想提取给定单词A的所有感官,这是我的代码:

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"))

问题是这段代码只写出最后的意义,而不是给定单词的所有意义。这是我第一次使用python,但我找不到任何解决方案。

1 个答案:

答案 0 :(得分:0)

不确定我是否100%理解这个问题,但您可以尝试这样的事情:

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"))