当前位置:网站首页>Minidom module writes and parses XML
Minidom module writes and parses XML
2022-07-04 21:22:00 【Harrytsz】
One 、 Write XML file
from xml.dom import minidom
# 1. establish DOM Tree object
dom=minidom.Document()
# 2. Create a root node . Use... Every time DOM Object to create any node .
root_node=dom.createElement('root')
# 3. use DOM Object to add the root node
dom.appendChild(root_node)
# use DOM Object to create element child nodes
book_node=dom.createElement('book')
# Add element child nodes with parent node objects
root_node.appendChild(book_node)
# Set the properties of this node
book_node.setAttribute('price','199')
name_node=dom.createElement('name')
root_node.appendChild(name_node)
# Also used DOM Create text node , Put the text node ( Written content ) As a child node
name_text=dom.createTextNode(' Computer programming language The first 1 edition ')
# Use the node object with text added ( As the parent node of the text node ) Add text node
name_node.appendChild(name_text)
# Every node object ( Include dom Object itself ) They all have output XML Method of content , Such as :toxml()-- character string , toprettyxml()-- Beautify the tree format .
try:
with open('dom_write.xml','w',encoding='UTF-8') as fh:
# 4.writexml() The first parameter is the target file object , The second parameter is the indentation format of the root node , The third parameter is the indent format of other child nodes ,
# The fourth parameter sets the line feed format , The fifth parameter establishes xml Coding of content .
dom.writexml(fh,indent='',addindent='\t',newl='\n',encoding='UTF-8')
print(' write in xml OK!')
except Exception as err:
print(' error message :{0}'.format(err))
give the result as follows :
<?xml version="1.0" encoding="utf8"?>
<root>
<book price="99">
<name> Computer programming language The first 1 edition </name>
</book>
</root>
Two 、 analysis XML file
from xml.dom import minidom
with open('dom_write.xml','r',encoding='utf8') as fh:
# parse() obtain DOM object
dom = minidom.parse(fh)
# Get root node
root = dom.documentElement
# The name of the node
print(root.nodeName)
# Node type :'ELEMENT_NODE', Element nodes ; 'TEXT_NODE', Text node ; 'ATTRIBUTE_NODE', Attribute node
print(root.nodeType)
# Get all the children under a node , It's a list
print(root.childNodes)
# adopt dom Object or root element , Then get the element node according to the tag name , It's a list
book = root.getElementsByTagName('book')[0]
# Get node properties
print(book.getAttribute('price'))
# Get the text content of an element node , Get the sub text node first , And then through “data” Property to get the text content
name = root.getElementsByTagName('name')[0]
name_text_node = name.childNodes[0]
print(name_text_node.data)
# Get the parent node of a node
print(name.parentNode.nodeName)
边栏推荐
猜你喜欢
Solution of 5g unstable 5g signal often dropped in NetWare r7000 Merlin system
[1200. Différence absolue minimale]
Stealing others' vulnerability reports and selling them into sidelines, and the vulnerability reward platform gives rise to "insiders"
杰理之AD 系列 MIDI 功能说明【篇】
Gobang go to work fishing tools can be LAN / man-machine
华为ensp模拟器 DNS服务器的配置
【1200. 最小絕對差】
Explication détaillée du mécanisme de distribution des événements d'entrée multimodes
TweenMax表情按钮js特效
华为ensp模拟器实现通信安全(交换机)
随机推荐
杰理之AD 系列 MIDI 功能说明【篇】
NetWare r7000 Merlin system virtual memory creation failed, prompting that the USB disk reading and writing speed does not meet the requirements. Solution, is it necessary to create virtual memory??
SolidWorks工程图添加材料明细表的操作
js 3D爆炸碎片图片切换js特效
Huawei ENSP simulator configures ACL access control list
Vue cleans up the keepalive cache scheme in a timely manner
shp数据制作3DTiles白膜
redis RDB AOF
maya灯建模
heatmap.js图片热点热力图插件
Y56. Chapter III kubernetes from entry to proficiency -- business image version upgrade and rollback (29)
Configuration of DNS server of Huawei ENSP simulator
minidom 模塊寫入和解析 XML
IIC (STM32)
HWiNFO硬件检测工具v7.26绿色版
刘锦程荣获2022年度中国电商行业创新人物奖
Day24: file system
宝塔 7.9.2 宝塔控制面板绕过 手机绑定认证 绕过官方认证
Jerry's ad series MIDI function description [chapter]
y56.第三章 Kubernetes从入门到精通 -- 业务镜像版本升级及回滚(二九)