【发布时间】:2025-12-03 23:55:01
【问题描述】:
我有一个大型 XML 文件,我需要对其进行解析并查找特定节点。找到后,我需要制作一个副本,编辑几个值并再次写入文件。
到目前为止,我已经设法获得了我想要的 DOM 元素。 XML 中实际上已经有两个这样的元素,所以在我完成后,将会有三个。一旦我制作了 DOM 的副本并编辑了值,我该如何将其写入 DOM(以及文件)?
我目前正在使用 Python 的 from xml.dom import minidom。
【问题讨论】:
我有一个大型 XML 文件,我需要对其进行解析并查找特定节点。找到后,我需要制作一个副本,编辑几个值并再次写入文件。
到目前为止,我已经设法获得了我想要的 DOM 元素。 XML 中实际上已经有两个这样的元素,所以在我完成后,将会有三个。一旦我制作了 DOM 的副本并编辑了值,我该如何将其写入 DOM(以及文件)?
我目前正在使用 Python 的 from xml.dom import minidom。
【问题讨论】:
您从创建文档开始:
Document doc = Document("your_root")
如果它是你要添加的文本节点,你追加:
text_node = doc.createTextNode(str(some content))
doc.appendChild(text_node)
如果你有例如<some_elem key="my value">some my text</some_elem>:
这样做:
text_node = doc.createTextNode('some my text')
elem.appendChild(text_node)
elem.setAttribute('key', 'my value')
如果是复杂元素,请使用:
elem = doc.createElement('your_elem')
如果你需要设置属性:
elem.setAttribute("some-attribute",your_attr)
如果你需要添加一些东西:
elem.appendChild( some_other_elem )
然后追加元素:
doc.appendChild( elem )
如果您需要字符串表示,请执行以下操作:
doc.toxml()
的
doc.toprettyxml()
【讨论】:
<FIELD ID="abc" TITLE="hello">VALUE</FIELD> 形式的元素。拥有元素后如何设置 VALUE ?谢谢你的帮助! :D
field.childNodes[0].nodeValue = new_val。捕获任何 IndexErrors 等。
from xml.dom.minidom import getDOMImplementation
impl = getDOMImplementation()
newdoc = impl.createDocument(None, "some_tag", None)
top_element = newdoc.documentElement
text = newdoc.createTextNode('Some textual content.')
top_element.appendChild(text)
所以我猜appendChild 是你要的?
【讨论】: