最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用PYTHON創(chuàng)建XML文檔

 更新時(shí)間:2012年03月01日 15:58:32   作者:  
今天想使用python來創(chuàng)建一個(gè)xml文件。找了下資料,發(fā)現(xiàn)資料不是很多,基本上都是使用python來解析xml文件的
當(dāng)用GOOGLE查的時(shí)候,內(nèi)容幾乎都是一樣的。但是你想要的東西,一個(gè)也沒有。例如,我就找不到中國(guó)人寫的如何使用PYTHON來創(chuàng)建一個(gè)XML文件。當(dāng)然,直接用文件寫的方式也能夠達(dá)到同樣的效果,但是畢竟容易出錯(cuò),而且看起來不優(yōu)雅。最后,我看了很多資料,終于明白如何使用PYTHON寫一個(gè)XML文件了。以下就是一個(gè)簡(jiǎn)單的例子,這個(gè)例子是已經(jīng)調(diào)試通過的,大家可以放心使用。
復(fù)制代碼 代碼如下:

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來創(chuàng)建一個(gè)xml文件。找了下資料,發(fā)現(xiàn)資料不是很多,基本上都是使用python來解析xml文件的。
比如我要將內(nèi)容為
復(fù)制代碼 代碼如下:

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

寫入到xmlstuff.xml文件中去。
其實(shí)也很簡(jiǎn)單,基本原理如下:
我使用xml的DOM方式,先在內(nèi)存中創(chuàng)建一個(gè)空的DOM樹,然后不斷增加我要的節(jié)點(diǎn),最后形成我想要的DOM,最后輸出到文件中去。
1.我使用xml.dom.minidom這個(gè)module來創(chuàng)建xml文件
from xml.dom import minidom
2. 每個(gè)xml文件都是一個(gè)Document對(duì)象,代表著內(nèi)存中的DOM樹
doc = minidom.Document()
3.有了空的DOM樹后,我們?cè)谏厦嫣砑痈?jié)點(diǎn)
rootNode = doc.createElement("root")
doc.appendChild(rootNode) #注意python的library reference里說,createElement后并沒有將節(jié)點(diǎn)對(duì)象加到DOM樹上,需要自己手工加上
4.創(chuàng)建其它的節(jié)點(diǎn)
5.輸出到xml文件中去
doc.writexml(f, "/t", "/t", "/n", "utf-8") #第一個(gè)參數(shù)f就是你的目標(biāo)文件對(duì)象,第二個(gè)參數(shù)好像是<?xml>和下面一個(gè)根節(jié)點(diǎn)的縮進(jìn)排列格式,
第三個(gè)參數(shù)好像是其他節(jié)點(diǎn)與子節(jié)點(diǎn)的縮進(jìn)排列格式,第四個(gè)參數(shù)制定了換行的格式(如果你填入" ",那就不換行了,所有的xml都縮在了一行上面 :) )
,第五個(gè)參數(shù)制定了xml內(nèi)容的編碼。除了第一個(gè)參數(shù)是必須的,其他參數(shù)都是可選擇的。
最終代碼如下(這個(gè)程序沒什么價(jià)值,只是用來測(cè)試驗(yàn)證自己的想法,你更可能定義一個(gè)簡(jiǎn)單類或函數(shù),將你的數(shù)據(jù)結(jié)構(gòu)序列化到xml文件中):
復(fù)制代碼 代碼如下:

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"

總結(jié):
1. 目標(biāo)(將一串xml字符串寫到文件中)=>得到一串xml字符串=>dom樹(minidom中有toxml方法將DOM樹的xml信息輸出成字符串)
2. 使用python 2.5 documentation(也就是安裝python時(shí)一起安裝的python手冊(cè))中的library reference中的第8章(structrued Markup Processing Tools),查閱手冊(cè)很重要,另外查閱一些簡(jiǎn)明的python書籍
3.多思考,邏輯清晰了,即時(shí)象我一樣對(duì)如何使用python操縱xml一無所知,稍微查下資料也就可以完成功能了
4. 恰好證明了python這門語言的強(qiáng)大的功能性 :) gets job done..

相關(guān)文章

  • Django 前后臺(tái)的數(shù)據(jù)傳遞的方法

    Django 前后臺(tái)的數(shù)據(jù)傳遞的方法

    本篇文章主要介紹了Django 前后臺(tái)的數(shù)據(jù)傳遞的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • 解決ImportError:DLL load failed while importing win32api:找不到指定的模塊

    解決ImportError:DLL load failed while impo

    在安裝pywin32后,可能會(huì)出現(xiàn)無法導(dǎo)入win32api的錯(cuò)誤,一個(gè)有效的解決方案是運(yùn)行pywin32_postinstall.py腳本,首先,打開cmd并切換到環(huán)境的Scripts文件夾,確保存在pywin32_postinstall.py文件
    2024-09-09
  • Python裝飾器基礎(chǔ)概念與用法詳解

    Python裝飾器基礎(chǔ)概念與用法詳解

    這篇文章主要介紹了Python裝飾器基礎(chǔ)概念與用法,結(jié)合實(shí)例形式詳細(xì)分析了Python裝飾器的概念、功能、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2018-12-12
  • 利用rest framework搭建Django API過程解析

    利用rest framework搭建Django API過程解析

    這篇文章主要介紹了利用rest framework搭建Django API過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • python爬取B站關(guān)注列表及數(shù)據(jù)庫(kù)的設(shè)計(jì)與操作

    python爬取B站關(guān)注列表及數(shù)據(jù)庫(kù)的設(shè)計(jì)與操作

    這篇文章主要為大家介紹了python爬取B站關(guān)注列表及數(shù)據(jù)庫(kù)的設(shè)計(jì)與操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Python處理缺失值的8種不同方法實(shí)例

    Python處理缺失值的8種不同方法實(shí)例

    缺失值是指粗糙數(shù)據(jù)中由于缺少信息而造成的數(shù)據(jù)的聚類、分組、刪失或截?cái)?下面這篇文章主要給大家介紹了關(guān)于Python處理缺失值的8種不同方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • python自定義解析簡(jiǎn)單xml格式文件的方法

    python自定義解析簡(jiǎn)單xml格式文件的方法

    這篇文章主要介紹了python自定義解析簡(jiǎn)單xml格式文件的方法,涉及Python解析XML文件的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-05-05
  • python實(shí)現(xiàn)馬丁策略回測(cè)3000只股票的實(shí)例代碼

    python實(shí)現(xiàn)馬丁策略回測(cè)3000只股票的實(shí)例代碼

    這篇文章主要介紹了python實(shí)現(xiàn)馬丁策略回測(cè)3000只股票,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • python對(duì)raw格式照片進(jìn)行降噪處理的方法詳解

    python對(duì)raw格式照片進(jìn)行降噪處理的方法詳解

    要對(duì)RAW格式的照片進(jìn)行降噪,我們可以使用rawpy庫(kù)來讀取RAW圖像,并使用imageio庫(kù)將處理后的圖像保存為其他格式,如PNG或JPEG,本文將詳細(xì)給大家介紹python如何對(duì)raw格式照片進(jìn)行降噪處理,文中有詳細(xì)的代碼流程,需要的朋友可以參考下
    2023-05-05
  • python爬蟲URL重試機(jī)制的實(shí)現(xiàn)方法(python2.7以及python3.5)

    python爬蟲URL重試機(jī)制的實(shí)現(xiàn)方法(python2.7以及python3.5)

    今天小編就為大家分享一篇python爬蟲URL重試機(jī)制的實(shí)現(xiàn)方法(python2.7以及python3.5),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12

最新評(píng)論

英吉沙县| 故城县| 安阳市| 衡阳县| 噶尔县| 将乐县| 水城县| 马尔康县| 札达县| 庆阳市| 枞阳县| 万盛区| 阿图什市| 志丹县| 黑河市| 禄劝| 商都县| 灵丘县| 玉门市| 修武县| 遂溪县| 桂平市| 洛隆县| 阳信县| 临澧县| 阳东县| 鹤峰县| 湘阴县| 卢龙县| 香格里拉县| 白玉县| 灌云县| 东乌| 同仁县| 寿宁县| 嵩明县| 仁化县| 绥棱县| 梓潼县| 连南| 江孜县|