gpt4 book ai didi

python - 如何使用 xml.etree.ElementTree 有条件地将属性插入 Python 中的节点

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

我正在使用 Python 的 xml.etree.ElementTree 构建 XML 文档,但无法有条件地将属性插入节点。这是我的代码示例:

Attr1="stamps"
Attr2="ghouls"
Attr3=""

node = ET.SubElement(root_node, "ChildNode1",
Attr1=Attr1,
Attr2=Attr2,
Attr3=Attr3)

很简单,输出完全符合预期。但是,如果值为 None,我见过的许多 XML 文档都会完全排除该属性。我该怎么做呢?像这样的东西:

Attr1="stamps"
Attr2="ghouls"
Attr3=""

node = ET.SubElement(root_node, "ChildNode1",
Attr1=Attr1,
Attr2=Attr2,
(Attr3=Attr3 if Attr != "" else pass))

但是库不支持这种语法。我知道我可以做一个 if 语句并为整个节点复制代码减去条件值,但我不想多次复制代码。有没有使用 ElementTree 库的快速简便的方法来做到这一点?

最佳答案

先创建元素,再添加属性

node = ET.SubElement(root_node,"ChildNode1",Attr1=Attr1,Attr2=Attr2)
if Attr3 != "":
node.attrib["Attr3"] = Attr3

如果您担心 Attr1Attr2 是空的,可以使用相同的方法。

ElementTree 将元素的所有属性保存在对象的 attrib 属性中可用的字典中。键是属性名称,值是属性值。

关于python - 如何使用 xml.etree.ElementTree 有条件地将属性插入 Python 中的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35469786/

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