Python生成XML文件

欲成這樣的xml結(jié)構(gòu)

<?xml version="1.0" encoding="utf-8"?>
    <DOCUMENT content_method="full">
        <item>
            <key>Key1</key>
            <display>
                <url>https://www.baidu.com/</url>
                <title>哈哈</title>
            </display>
        </item>
    </DOCUMENT>

需要如下代碼:

#encoding:utf-8
'''
根據(jù)一個給定的XML Schema,使用DOM樹的形式從空白文件生成一個XML。
'''
from xml.dom.minidom import Document
doc = Document()  #創(chuàng)建DOM文檔對象
DOCUMENT = doc.createElement('DOCUMENT') #創(chuàng)建根元素
DOCUMENT.setAttribute('content_method',"full")#設(shè)置命名空間
#DOCUMENT.setAttribute('xsi:noNamespaceSchemaLocation','DOCUMENT.xsd')#引用本地XML Schema
doc.appendChild(DOCUMENT)
############item:Python處理XML之Minidom################
item = doc.createElement('item')
#item.setAttribute('genre','XML')
DOCUMENT.appendChild(item)
key = doc.createElement('key')

key_text = doc.createTextNode('Key1') #元素內(nèi)容寫入
key.appendChild(key_text)
item.appendChild(key)
display = doc.createElement('display')
item.appendChild(display)
display_url = doc.createElement('url')
display_title  = doc.createElement('title')
display_url_text = doc.createTextNode('https://www.baidu.com/')
display_title_text  = doc.createTextNode('哈哈')
display.appendChild(display_url)
display.appendChild(display_title)
display_url.appendChild(display_url_text)
display_title.appendChild(display_title_text)
item.appendChild(display)
'''
price = doc.createElement('price')
price_text = doc.createTextNode('28')
price.appendChild(price_text)
item.appendChild(price)
'''
########### 將DOM對象doc寫入文件
f = open('tel.xml','w')
#f.write(doc.toprettyxml(indent = '\t', newl = '\n', encoding = 'utf-8'))
doc.writexml(f,indent = '\t',newl = '\n', addindent = '\t',encoding='utf-8')
f.close()

dom對象樹已經(jīng)生成好了,我們可以調(diào)用dom的writexml()方法來將內(nèi)容寫入文件中。writexml()方法語法格式為:
writexml(writer, indent, addindent, newl, encoding)

  • writer是文件對象
  • indent是每個tag前填充的字符,如:’ ‘,則表示每個tag前有兩個空格
  • addindent是每個子結(jié)點的縮近字符
  • newl是每個tag后填充的字符,如:’\n’,則表示每個tag后面有一個回車
  • encoding是生成的XML信息頭中的encoding屬性值,在輸出時minidom并不真正進行編碼的處理,如果你保存的文本內(nèi)容中有漢字,則需要自已進行編碼轉(zhuǎn)換。
  • writexml方法是除了writer參數(shù)必須要有外,其余可以省略。

廖雪峰Python:
操作XML有兩種方法:DOM和SAX。DOM會把整個XML讀入內(nèi)存,解析為樹,因此占用內(nèi)存大,解析慢,優(yōu)點是可以任意遍歷樹的節(jié)點。SAX是流模式,邊讀邊解析,占用內(nèi)存小,解析快,缺點是我們需要自己處理事件。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,835評論 18 399
  • 1. XML總結(jié) 1.1. XML簡介 XML : 可擴展的標記語言。(和HTML非常類似的) 可擴展的。 自定義...
    Ethan_Walker閱讀 3,378評論 0 12
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 4,033評論 0 11
  • 目錄 1. 定義 XML,即 extensible Markup Language ,是一種數(shù)據(jù)標記語言 & 傳輸...
    Carson帶你學安卓閱讀 17,763評論 8 135
  • 秋風吹著浮云 雨滴答落在心里 淋濕了秋葉 沁潤了楓枝 風兒伴著細雨 留下晚秋的痕跡 漫步微雨 聽小草低語 訴說愛的...
    雪落重陽閱讀 478評論 36 47

友情鏈接更多精彩內(nèi)容