如何基于 XML 文件创建 Python 对象?
XML(可扩展标记语言)是一种用于结构化、存储和在系统之间传输数据的标记语言。在某些情况下,我们需要使用 Python 语言读取/写入 XML 数据。
通过使用 untangle 库,我们可以基于 XML 文件创建 Python 对象。Untangle 是一个小型 Python 库,它将 XML 文档转换为 Python 对象。
Untangle 具有非常简单的 API。我们只需要调用 parse() 函数即可获取 Python 对象。
语法
untangle.parse(filename, **parser_features)
参数
文件名:可以是 XML 字符串、XML 文件名或 URL
**解析器特性:传递给 parser.setFeature() 的作为特性值处理的额外参数。
返回值
该函数对其进行解析并返回一个 Python 对象,该对象表示给定的 XML 文档。
安装 Untangle 库
要使用 untangle.parse() 函数,我们需要先安装该库。通过使用以下命令,我们可以安装该库。
使用 pip 安装
pip install untangle
使用 anaconda 安装
conda install -c conda-forge untangle
示例
让我们以一个 XML 字符串为例,并创建 Python 对象。
xml = """<main> <object1 attr="name">content</object1> <object1 attr="foo">contenbar</object1> <test>me</test> </main>""" import untangle doc = untangle.parse(xml) # reading XML string data obj1 = doc.main.object1 print(obj1) print('-------------') obj2 = doc.main.test print(obj2)
输出
[Element(name = object1, attributes = {'attr': 'name'}, cdata = content), Element(name = object1, attributes = {'attr': 'foo'}, cdata = contenbar)] ------------- Element <test> with attributes {}, children [] and cdata me
使用 untangle 库,我们已成功将 XML 数据转换为 Python 对象。以一个 XML 文件 (file.xml) 为例,并使用 untangle 模块将其转换为 Python 对象。XML 文件中的数据如下所示
<?xml version="1.0"?> <root> <child name="child1"/> </root>
现在,读取上述 xml 文件以创建一个 python 对象。
import untangle obj = untangle.parse('path/to/file.xml') obj.root.child['name']
在为 XML 数据创建 Python 对象后,我们可以像上面一样获取子元素。
输出
'child1'
示例
让我们来看一个现实世界的例子,从 Planet Python 的 RSS Feed 中提取文章标题及其 URL。
import untangle xml = "https://planetpython.org/rss20.xml" obj = untangle.parse(xml) for item in obj.rss.channel.item: title = item.title.cdata link = item.link.cdata print(title) print(' ', link)
输出
IslandT: Python Tutorial -- Chapter 4 https://islandtropicaman.com/wp/2022/09/15/python-tutorial-chapter-4/ Tryton News: Debian integration packages for Tryton https://discuss.tryton.org/t/debian-integration-packages-for-tryton/5531 Python Does What?!: Mock Everything https://www.pythondoeswhat.com/2022/09/mock-everything.html The Python Coding Blog: Functions in Python are Like a Coffee Machine https://thepythoncodingbook.com/2022/09/14/functions-in-python-are-like-coffee-machines/ Real Python: How to Replace a String in Python https://realpython.com/replace-string-python/ Python for Beginners: Select Row From a Dataframe in Python https://www.pythonforbeginners.com/basics/select-row-from-a-dataframe-in-python PyCoder's Weekly: Issue #542 (Sept. 13, 2022) https://pycoders.com/issues/542 ……………………………
在此示例中,我们将 XML 数据的 URL 发送到 parse 函数,然后使用 for 循环迭代元素。
广告