3

我有一个大型 XML 文件,需要对其进行解析并查找特定节点。一旦找到它,我需要制作一个副本,编辑几个值并再次写入文件。

到目前为止,我已经设法获得了我想要的 DOM 元素。XML 中实际上已经有两个这样的元素,所以在我完成后,将会有三个。一旦我制作了 DOM 的副本并编辑了值,我该如何将其写入 DOM(以及文件)?

from xml.dom import minidom目前正在使用 Python。

4

2 回答 2

4

在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()
于 2012-08-03T11:21:52.653 回答
1

minidom 文档

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这是你要求的吗?

于 2012-08-03T11:03:51.087 回答