Python基于dom操作xml數(shù)據的方法示例
本文實例講述了Python基于dom操作xml數(shù)據的方法。分享給大家供大家參考,具體如下:
1、xml的內容為del.xml,如下
<?xml version="1.0" encoding="utf-8"?> <catalog> <maxid>4</maxid> <login username="pytest" passwd='123456'> <caption>Python</caption> <item id="4"> <caption>test</caption> </item> </login> <item id="2"> <caption>Zope</caption> </item> </catalog>
2、python的代碼如下
# -*- coding:utf-8 -*-
#! python3
#1、獲得標簽屬性
print("#1、獲得標簽屬性")
import xml.dom.minidom
dom = xml.dom.minidom.parse("del.xml") #打開xml文檔
root = dom.documentElement #得到xml文檔
print("nodeName:",root.nodeName) #
print("nodeValue:",root.nodeValue)
print("nodeType:",root.nodeType)
print("ELEMENT_NODE:",root.ELEMENT_NODE)
#2、獲得子標簽
print("#2、獲得子標簽")
bb = root.getElementsByTagName('maxid')
print(type(bb))
print(bb)
b = bb[0]
print(b.nodeName)
print(b.nodeValue)
#3、獲取標簽屬性值
print("#3、獲取標簽屬性值")
itemlist = root.getElementsByTagName('login')
item =itemlist[0]
print(item.getAttribute("username"))
print(item.getAttribute("passwd"))
itemlist = root.getElementsByTagName('item')
item = itemlist[0] #通過在itemlist中的位置區(qū)分
print(item.getAttribute("id"))
item_1 = itemlist[1] #通過在itemlist中的位置區(qū)分
print(item_1.getAttribute("id"))
#4、獲得標簽對之間的數(shù)據
print("#4、獲得標簽對之間的數(shù)據")
itemlist1 = root.getElementsByTagName('caption')
item1 = itemlist1[0]
print(item1.firstChild.data)
item2 = itemlist1[1]
print(item2.firstChild.data)
#5總結
# minidom.parse(filename)
# 加載讀取XML文件
#
# doc.documentElement
# 獲取XML文檔對象
#
# node.getAttribute(AttributeName)
# 獲取XML節(jié)點屬性值
#
# node.getElementsByTagName(TagName)
# 獲取XML節(jié)點對象集合
#
# node.childNodes # 返回子節(jié)點列表。
#
# node.childNodes[index].nodeValue
# 獲取XML節(jié)點值
#
# node.firstChild
# # 訪問第一個節(jié)點。等價于pagexml.childNodes[0]
3、運行結果如下:
#1、獲得標簽屬性
nodeName: catalog
nodeValue: None
nodeType: 1
ELEMENT_NODE: 1
#2、獲得子標簽
<class 'xml.dom.minicompat.NodeList'>
[<DOM Element: maxid at 0x1dad800>]
maxid
None
#3、獲取標簽屬性值
pytest
123456
4
2
#4、獲得標簽對之間的數(shù)據
Python
test
運行結果截圖:

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數(shù)據技巧總結》、《Python數(shù)據結構與算法教程》、《Python Socket編程技巧總結》、《Python函數(shù)使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設計有所幫助。
相關文章
Python一行代碼實現(xiàn)ChatGPT接入微信機器人
這篇文章主要為大家介紹了Python一行代碼實現(xiàn)ChatGPT接入微信機器人示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03
推薦10款最受Python開發(fā)者歡迎的Python IDE
這篇文章收集了一些對開發(fā)者非常有幫助的,最好的10款Python IDE,包括Vim,Eclipse with PyDev,Sublime Text,PyCharm等知明Python開發(fā)工具2018-09-09

