91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python minidom模塊用法示例【DOM寫入和解析XML】

發布時間:2020-09-17 00:19:34 來源:腳本之家 閱讀:195 作者:薔薇Nina 欄目:開發技術

本文實例講述了Python minidom模塊用法。分享給大家供大家參考,具體如下:

一、DOM寫XML文件

# -*- coding:utf-8 -*-
#!python3
#導入minidom
from xml.dom import minidom
# 1.創建DOM樹對象
dom=minidom.Document()
# 2.創建根節點。每次都要用DOM對象來創建任何節點。
root_node=dom.createElement('root')
# 3.用DOM對象添加根節點
dom.appendChild(root_node)
# 用DOM對象創建元素子節點
book_node=dom.createElement('book')
# 用父節點對象添加元素子節點
root_node.appendChild(book_node)
# 設置該節點的屬性
book_node.setAttribute('price','199')
name_node=dom.createElement('name')
root_node.appendChild(name_node)
# 也用DOM創建文本節點,把文本節點(文字內容)看成子節點
name_text=dom.createTextNode('計算機程序設計語言 第1版')
# 用添加了文本的節點對象(看成文本節點的父節點)添加文本節點
name_node.appendChild(name_text)
# 每一個結點對象(包括dom對象本身)都有輸出XML內容的方法,如:toxml()--字符串, toprettyxml()--美化樹形格式。
try:
  with open('dom_write.xml','w',encoding='UTF-8') as fh:
    # 4.writexml()第一個參數是目標文件對象,第二個參數是根節點的縮進格式,第三個參數是其他子節點的縮進格式,
    # 第四個參數制定了換行格式,第五個參數制定了xml內容的編碼。
    dom.writexml(fh,indent='',addindent='\t',newl='\n',encoding='UTF-8')
    print('寫入xml OK!')
except Exception as err:
  print('錯誤信息:{0}'.format(err))

生成的dom_write.xml文件結果如下:

<?xml version="1.0" encoding="UTF-8"?>
<root>
 <book price="199"/>
 <name>計算機程序設計語言 第1版</name>
</root>

二、DOM解析XML文件

# -*- coding:utf-8 -*-
#!python3
from xml.dom import minidom
with open('dom_write.xml','r',encoding='utf8') as fh:
  # parse()獲取DOM對象
  dom=minidom.parse(fh)
  # 獲取根節點
  root=dom.documentElement
  # 節點名稱
  print(root.nodeName)
  # 節點類型:'ELEMENT_NODE',元素節點; 'TEXT_NODE',文本節點; 'ATTRIBUTE_NODE',屬性節點
  print(root.nodeType)
  # 獲取某個節點下所有子節點,是個列表
  print(root.childNodes)
  # 通過dom對象或根元素,再根據標簽名獲取元素節點,是個列表
  book=root.getElementsByTagName('book')[0]
  # 獲取節點屬性
  print(book.getAttribute('price'))
  # 獲取某個元素節點的文本內容,先獲取子文本節點,然后通過“data”屬性獲取文本內容
  name=root.getElementsByTagName('name')[0]
  name_text_node=name.childNodes[0]
  print(name_text_node.data)
  # 獲取某節點的父節點
  print(name.parentNode.nodeName)

運行輸出:

root
1
[<DOM Text node "'\n\t'">, <DOM Element: book at 0x1dd2800>, <DOM Text node "'\n\t'">, <DOM Element: name at 0x1dd2850>, <DOM Text node "'\n'">]
199
計算機程序設計語言 第1版
root

PS:這里再為大家提供幾款關于xml操作的在線工具供大家參考使用:

在線XML/JSON互相轉換工具:
http://tools.jb51.net/code/xmljson

在線格式化XML/在線壓縮XML
http://tools.jb51.net/code/xmlformat

XML在線壓縮/格式化工具:
http://tools.jb51.net/code/xml_format_compress

XML代碼在線格式化美化工具:
http://tools.jb51.net/code/xmlcodeformat

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python操作xml數據技巧總結》、《Python數據結構與算法教程》、《Python Socket編程技巧總結》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》

希望本文所述對大家Python程序設計有所幫助。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

勐海县| 阿拉善右旗| 成武县| 松溪县| 建瓯市| 和平区| 三原县| 随州市| 泽普县| 惠安县| 城固县| 土默特右旗| 高台县| 黑龙江省| 师宗县| 武强县| 舞阳县| 芒康县| 西城区| 闸北区| 邹城市| 千阳县| 都江堰市| 禄劝| 嵩明县| 岳阳市| 合肥市| 抚顺市| 马公市| 揭阳市| 营口市| 龙州县| 武乡县| 祥云县| 寿阳县| 龙川县| 高邑县| 临武县| 固原市| 乌拉特后旗| 双牌县|