繁体   English   中英

在 Python 中获取 XML 属性的值

[英]Getting values of XML attributes In Python

我是 Python 新手,我需要从 XML 文件中获取一些属性值,然后将这些值转换为 JSON。

例子:

<messages> 
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <body>Dont forget me this weekend!</body>
</messages>

{
"from":"Jani",
"body":"Dont forget me this weekend!"
}

我怎样才能最好地实现这一目标? 我会先将其转换为 JSON 吗? 如果是,我会使用哪个库? Lxml? 或者我将它转换为 String 然后使用正则表达式来获取一些值?

您可以使用ElementTree API来解析您的 XML 文本并从中获取所需的值。

然后您可以使用JSON API创建所需的 JSON 输出。

我注意到你的 json 格式就像一个 python 字典。

from xml.dom import minidom

data = {}
with open('email.xml', 'r', encoding='utf8') as fh:
    dom = minidom.parse(fh)
# Get root element
root = dom.documentElement
for tag in root.childNodes:
    if tag.nodeType != tag.TEXT_NODE:
        key = tag.nodeName
        value = tag.childNodes[0].data
        data[key] = value
print(data)

输出是:{'to': 'Tove', 'from': 'Jani', 'heading': 'Reminder', 'body': '这个周末不要忘记我!'}

如果你想更深入地理解xml,你需要了解一些组件,如根、元素、节点、标签、属性等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM