使用PYTHON建立XML文檔_python

來源:互聯網
上載者:User

標籤:輸出   creat   tar   添加   原理   記憶體   failed   ret   函數   

當用GOOGLE查的時候,內容幾乎都是一樣的。但是你想要的東西,一個也沒有。例如,我就找不到中國人寫的如何使用PYTHON來建立一個XML檔案。當然,直接用檔案寫的方式也能夠達到同樣的效果,但是畢竟容易出錯,而且看起來不優雅。最後,我看了很多資料,終於明白如何使用PYTHON寫一個XML檔案了。以下就是一個簡單的例子,這個例子是已經調試通過的,大家可以放心使用。 

import xml.dom.minidom 
from xml.dom.DOMImplementation import implementation 
import xml.sax.writer 
import xml.utils 

# Create a new document with no namespace uri, qualified name, 
# or document type 
document = implementation.createDocument(None,None,None) 
personnel = document.createElement("personnel") 
personnel.setAttribute(‘number‘, ‘5‘) 
document.appendChild(personnel) 
sexnode = document.createElement("sex") 
sexnode.appendChild(document.createTextNode("male")) 

namenode = document.createElement("name") 
namenode.appendChild(document.createTextNode("tianbin")) 

personnel.appendChild(sexnode) 
personnel.appendChild(namenode) 

out = open("tianbin.xml", "w") 
xml.dom.ext.PrettyPrint(document,out) 


今天想使用python來建立一個xml檔案。找了下資料,發現資料不是很多,基本上都是使用python來解析xml檔案的。 
比如我要將內容為 

<?xml version="1.0" encoding="utf-8"?> 
<root> 
<book isbn="34909023"> 
<author> 
dikatour 
</author> 
</book> 
</root> 

寫入到xmlstuff.xml檔案中去。 
其實也很簡單,基本原理如下: 
我使用xml的DOM方式,先在記憶體中建立一個空的DOM樹,然後不斷增加我要的節點,最後形成我想要的DOM,最後輸出到檔案中去。 
1.我使用xml.dom.minidom這個module來建立xml檔案 
from xml.dom import minidom 
2. 每個xml檔案都是一個Document對象,代表著記憶體中的DOM樹 
doc = minidom.Document() 
3.有了空的DOM樹後,我們在上面添加根節點 
rootNode = www.bsck.org("root") 
doc.appendChild(rootNode) #注意python的library reference裡說,createElement後並沒有將節點對象加到DOM樹上,需要自己手工加上 
4.建立其它的節點 
5.輸出到xml檔案中去 
doc.writexml(f, "/t", "/t", "/n", "utf-8") #第一個參數f就是你的目標檔案對象,光棍影院第二個參數好像是<?xml>和下面一個根節點的縮排排列格式, 
第三個參數好像是其他節點與子節點的縮排排列格式,第四個參數制定了換行的格式(如果你填入" ",那就不換行了,所有的xml都縮在了一行上面 :) ) 
,第五個參數制定了xml內容的編碼。除了第一個參數是必須的,其他參數都是可選擇的。 
最終代碼如下(這個程式沒什麼價值,只是用來測實驗證自己的想法,你更可能定義一個簡單類或函數,將你的資料結構序列化到xml檔案中): 

from xml.dom import minidom 
import traceback 
try: 
f = open("xmlstuff.xml", "w") 
try: 
doc = minidom.Document() 
rootNode = doc.createElement("root") 
doc.appendChild(rootNode) 
bookNode = doc.createElement("book") 
bookNode.setAttribute("isbn", "34909023") 
rootNode.appendChild(bookNode) 
authorNode = doc.createElement("author") 
bookNode.appendChild(authorNode) 
authorTextNode = doc.createTextNode("dikatour") 
authorNode.appendChild(authorTextNode) 
doc.writexml(f, "/t", "/t", "/n", "utf-8") 
except: 
trackback.print_exc() 
finally: 
f.close() 
except IOException: 
print "open file failed" 

使用PYTHON建立XML文檔_python

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.