当前位置:网站首页>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)
边栏推荐
猜你喜欢

MySQL - database query - use of aggregate function, aggregate query, grouping query

uniapp 富文本编辑器使用

【1200. 最小絕對差】

Pytorch---使用Pytorch实现LinkNet进行语义分割

Some suggestions for interface design

torch. Tensor and torch The difference between tensor

The video sound of station B is very low - solution

Golang中UTF编码和字符集

ApplicationContext 与 BeanFactory 区别(MS)

Difference between ApplicationContext and beanfactory (MS)
随机推荐
VIM asynchronous problem
Foxit pdf editor v10.1.8 green version
redis03——Redis的网络配置与心跳机制
redis RDB AOF
Huawei ENSP simulator configures DHCP for router
Gobang go to work fishing tools can be LAN / man-machine
华为ensp模拟器 配置ACL访问控制列表
Jerry's ad series MIDI function description [chapter]
搭建一个仪式感点满的网站,并内网穿透发布到公网 1/2
[micro service SCG] use of predict
Android原生数据库的基本使用和升级
多模输入事件分发机制详解
Word文档中标题前面的黑点如何去掉
heatmap.js图片热点热力图插件
Jmeter 之压测入门
Redis:Redis配置文件相关配置、Redis的持久化
acwing 3302. Expression evaluation
华为ensp模拟器 给路由器配置DHCP
Jerry added the process of turning off the touch module before turning it off [chapter]
Configuration of DNS server of Huawei ENSP simulator