我有一個大的XML文件,我需要解析並查找特定的節點。一旦找到它,我需要複製,編輯幾個值並再次寫入文件。用Python複製和編寫XML節點
到目前爲止,我設法獲得了我想要的DOM元素。實際上XML中有兩個元素已經存在,所以在完成之後,會有三個元素。一旦我製作了DOM的副本並編輯了該值,我該如何將它寫入DOM(從而將其寫入文件)呢?
我現在使用Python的from xml.dom import minidom
。
我有一個大的XML文件,我需要解析並查找特定的節點。一旦找到它,我需要複製,編輯幾個值並再次寫入文件。用Python複製和編寫XML節點
到目前爲止,我設法獲得了我想要的DOM元素。實際上XML中有兩個元素已經存在,所以在完成之後,會有三個元素。一旦我製作了DOM的副本並編輯了該值,我該如何將它寫入DOM(從而將其寫入文件)呢?
我現在使用Python的from xml.dom import minidom
。
在minidom命名你開始創建文檔:
text_node = doc.createTextNode(str(some content))
doc.appendChild(text_node)
,如果你有例如<some_elem key="my value">some my text</some_elem>
:
Document doc = Document("your_root")
那麼如果你想添加一個文本節點,你追加它:
做這樣的:
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()
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
是你問什麼?
如果我有以下形式的元件' VALUE ' 。我有這個元素後,如何設置VALUE?謝謝你的幫助! :D –
user130810
2012-08-03 11:59:32
嘗試做一個:'field.childNodes [0] .nodeValue = new_val'。捕獲任何IndexErrors等。 – Federer 2012-08-03 12:52:43
我現在正在修改示例以向您展示。 – Edmon 2012-08-03 12:54:01