从 XML 到 Python 列表的数据 [英] Data from XML to Python list

查看:23
本文介绍了从 XML 到 Python 列表的数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以将数据从 XML 文件存储到 Python 中的列表.例如,我有一个包含以下内容的 XML 文件:

Is it possible to store data from an XML file to a list in python. For example I have an XML file with the following content:

<brochure>
<onlinePath>http://EEE</onlinePath>
<downloadPath>http://YYY</downloadPath>
<Name>ABC</Name>
<AAA>
    <P>JPG</P>
        <Q>JPG</Q>
</AAA>
</brochure>
<brochure>
<onlinePath>http://EKK</onlinePath>
<downloadPath>http://XXX</downloadPath>
<Name>DEF</Name>
<AAA>
    <P>JPG</P>
        <Q>JPG</Q>
</AAA>
</brochure>

是否可以存储到python列表中,例如:

Is it possible to store into a python list like:

onlinePath = ("http://EEE", "http://EKK")
Name = ("ABC", "DEF")

推荐答案

import lxml

xml = """
<brochures>
    <brochure>
        <onlinePath>http://EEE</onlinePath>
        <downloadPath>http://YYY</downloadPath>
        <Name>ABC</Name>
        <AAA>
            <P>JPG</P>
            <Q>JPG</Q>
        </AAA>
    </brochure>
    <brochure>
        <onlinePath>http://EKK</onlinePath>
        <downloadPath>http://XXX</downloadPath>
        <Name>DEF</Name>
        <AAA>
            <P>JPG</P>
            <Q>JPG</Q>
        </AAA>
    </brochure>
</brochures>
"""

root = lxml.etree.fromstring(xml)
mylist = root.xpath('//brochure/onlinePath/text()')

结果

['http://EEE', 'http://EKK']

注意事项:

  1. 我将您的 xml 包裹在 <brochures></brochures>使其成为树而不是森林(即单个根节点);

  1. I wrapped your xml in <brochures></brochures> to make it a tree instead of a forest (ie single root node);

如果要从文件而不是字符串中读取,请使用 lxml.etree.parse() 而不是 lxml.etree.fromstring()

If you want to read from a file instead of a string, use lxml.etree.parse() instead of lxml.etree.fromstring()

这篇关于从 XML 到 Python 列表的数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆