gpt4 book ai didi

python - 在 python 中快速简便地模板化 xml 文件的方法

转载 作者:数据小太阳 更新时间:2023-10-29 02:00:59 25 4
gpt4 key购买 nike

现在我已经在我的 python 脚本中对整个 xml 文件进行了硬编码,并且只是执行了 out.write(),但是现在它变得越来越难管理,因为我有多种类型的 xml 文件。

什么是设置模板的最简单快捷的方法,以便我可以只给出变量名和文件名?

最佳答案

简短的回答是:您应该关注和处理数据(即 python 对象)而不是原始 XML

基本故事:XML 应该是某些数据或数据集的表示。关于数据类型、它代表什么等等,您的问题没有太多细节——所以我会给您一些基本的答案。

Python 选择:BeautifulSoup、lxml 和其他 python 库(ElementTree 等),使处理 XML 更加容易。与我尝试直接使用原始格式的 XML 相比,它们让我读入或写出 XML 数据要容易得多。

在这 2 个(输入、输出)事件的中间,我的 Python 程序正在处理一个漂亮的 Python 对象或某种我可以遍历的解析树。您可以读入数据,从该字符串创建一个对象,对其进行操作并写出 XML。

其他选择,模板:好吧——也许您喜欢 XML,只是想对其进行“模板化”,以便用数据填充它。

如果您不是真正地操纵数据,而只是将其表示为输出,您可能会对此感到更自在。而且,这类似于您当前使用的 XML 字符串——因此可能更熟悉。

使用 Cheetah、Jinja 或其他模板库来提供帮助。使用该模板语言为 XML 文件创建一个模板。

例如,您刚刚从文件或数据库表中读取了图书列表。您可以使用模板将此书籍对象列表传递给模板引擎,然后告诉它写出您的 XML 输出。

这些书籍对象的示例模板:

<?xml version="1.0"?>
<catalog>
{% for object in object_list %}
<book id="{{ object.bookID }}">
<author>{{ object.author_name }}</author>
<title>{{ object.title }}</title>
<genre>{{ object.genre }}</genre>
<price>{{ object.price }}</price>
<publish_date>{{ object.pub_date }}</publish_date>
<description>{{ object.description }}</description>
</book>
{% endfor %}
</catalog>
</xml>

模板引擎将循环遍历“object_list”并输出一个包含所有书籍的长 XML 文件。这比存储原始 XML 字符串要好很多,就像您目前所做的那样。

这使得 XML 显示的更新和修改与数据、数据存储和数据操作分开——让您的生活更轻松。

关于python - 在 python 中快速简便地模板化 xml 文件的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1055108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com