【问题标题】:Python and xml.etree.ElementTree -Python 和 xml.etree.ElementTree -
【发布时间】:2020-10-01 07:57:18
【问题描述】:

我有一个大的 xml 文件,其结构如下:

<defaults>
   <options>
      <param name="email">email@email.org</param>
      <param name="email">email2@email.org</param>
      <param name="email">email3@email.org</param>
   </options>
</defaults>

我使用 xml.etree.ElementTree 作为 ET Lib,代码如下:

tree = ET.parse("xml_file.xml")
root = tree.getroot()
for admin in root.iter("param"):
    mail = admin.text("name")
    print(mail)

使用上面的代码,我获得了参数“类”,我需要参数标签之间的内容(电子邮件)。

安迪的想法?

【问题讨论】:

    标签: python xml parsing


    【解决方案1】:

    尝试运行你的 sn-p 我明白了

    TypeError: 'str' 对象不可调用

    因为.text 是一个保存节点“文本内容”的属性。

    for admin in root.iter("param"):
        print(admin.text)
    

    产生预期的:

    email@email.org
    email2@email.org
    email3@email.org
    

    我什至不知道“参数“类””是什么,您提供的任何地方都没有“类”。

    【讨论】:

    • 是的,对不起 - 我看到我的解释不好。我会用更好的措辞和细节制作一个新线程。还是谢谢你!
    【解决方案2】:

    请看下面的代码

    import xml.etree.ElementTree as ET
    
    tree = ET.parse('data.xml')
    root = tree.getroot()
    emails = [ele.text for ele in list(list(root)[0])]
    print(emails)
    

    输出

    ['email@email.org', 'email2@email.org', 'email3@email.org']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-21
      • 1970-01-01
      • 2015-09-12
      • 1970-01-01
      • 2014-05-11
      • 2011-07-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多