You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python的minidom库向XML文件中新增节点?

如何给XML添加新的Constant节点?

现有XML结构

<?xml version="1.0"?>
<Constants>
<Constant>
<Name>Packers_F</Name>
<Value>3</Value>
</Constant>
<Constant>
<Name>Bumpstop_F</Name>
<Value>30</Value>
</Constant>
</Constants>

要添加的节点

<Constant>
<Name>MYNEWNAME</Name>
<Value>1234</Value>
</Constant>

已实现的读取脚本

document = parse(xml_file.name)
contants = document.getElementsByTagName("Constant")
for constant in contants:
    temp_name = constant.getElementsByTagName('Name')[0]
    temp_value = constant.getElementsByTagName('Value')[0]
    print(getNodeText(temp_name),':',getNodeText(temp_value))

新增节点的实现方案

基于你使用的xml.dom.minidom库,按以下步骤完成节点新增:

  1. 找到<Constants>根节点,作为新节点的父容器
  2. 依次创建<Constant>、<Name>、<Value>元素节点
  3. 给<Name>和<Value>添加对应的文本内容
  4. 按层级组装节点,最后写入XML文件

完整代码示例

from xml.dom.minidom import parse

# 补充你用到的getNodeText函数(未定义的话需添加)
def getNodeText(node):
    return node.firstChild.nodeValue

# 读取XML文件
xml_file_path = "your_file.xml"  # 替换为你的实际文件路径
document = parse(xml_file_path)

# 获取根节点<Constants>
constants_root = document.getElementsByTagName("Constants")[0]

# 创建新的<Constant>节点
new_constant = document.createElement("Constant")

# 创建<Name>节点并设置文本
name_node = document.createElement("Name")
name_text = document.createTextNode("MYNEWNAME")
name_node.appendChild(name_text)

# 创建<Value>节点并设置文本
value_node = document.createElement("Value")
value_text = document.createTextNode("1234")
value_node.appendChild(value_text)

# 组装节点层级
new_constant.appendChild(name_node)
new_constant.appendChild(value_node)
constants_root.appendChild(new_constant)

# 保存修改后的XML文件
with open(xml_file_path, "w", encoding="utf-8") as f:
    document.writexml(f, indent="", addindent="  ", newl="\n", encoding="utf-8")

# 验证结果:打印所有节点
contants = document.getElementsByTagName("Constant")
for constant in contants:
    temp_name = constant.getElementsByTagName('Name')[0]
    temp_value = constant.getElementsByTagName('Value')[0]
    print(getNodeText(temp_name), ':', getNodeText(temp_value))

关键说明

  • 用createElement创建元素节点,createTextNode创建文本内容节点
  • 通过appendChild维护节点层级,需从最内层文本节点开始组装
  • writexml的参数可控制XML输出格式,让内容更易读

内容的提问来源于stack exchange,提问作者Dario Armellin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 14:25:24