2011-12-10 62 views
0

正如我所看到的,當我們在Python腳本運行我可以編輯由xml.dom.minidom.parse加載的XML嗎?

from xml.dom.minidom import parse 
myXML = parse('anything.xml') 

,它加載「anything.xml」的內容,直到你離開的腳本或按Ctrl + d你的Python會話。

是否有可能在Python中爲這個加載的XML版本添加屬性值?

+0

你的問題不明確。這不是緩存,而是XML已經加載。你想只更新那個對象,還是你想修改'anything.xml'? –

+0

我不想修改原始的xml(anything.xml)我想修改解析(加載)的XML。 – nightrider84

+0

http://lxml.de/ –

回答

3

parse方法將爲您返回xml.dom.minidom.Document的實例,您可以在其中調用xml.dom文檔中列出的大量方法。這裏有一個小例子:

import xml.dom.minidom 

d = xml.dom.minidom.parseString('<head>hello</head>') 
d.getElementsByTagName('head')[0].setAttribute('joe', '2') 
print d.toxml() 

這增加了joe="2"屬性的head標籤:

<?xml version="1.0" ?><head joe="2">hello</head> 
+0

那麼,它不會修改XML文件?因爲我要解析一個文件,而不是字符串? – nightrider84

+0

@ nightrider84:這個例子展示瞭如何修改通過解析文件/字符串創建的* document *對象。然後,您可以將該對象寫回到文件或其他文件中。請參閱文檔以瞭解寫入方法 –

+0

還有一個問題。 [0] .setAttribute [0]是什麼意思?謝謝 – nightrider84

相關問題