Python minidom模块用法示例【DOM写入和解析XML】
作者:蔷薇Nina 发布时间:2021-04-22 23:28:19
标签:Python,minidom,DOM,XML
本文实例讲述了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程序设计有所帮助。
来源:https://www.cnblogs.com/wcwnina/p/7222180.html


猜你喜欢
- 本文实例讲述了python实现读取excel文件中所有sheet操作。分享给大家供大家参考,具体如下:表格是这样的 实现把此文件所
- python调用文件时找不到相对路径current_path = os.path.dirname(__file__)if current_p
- 如下图所示:单击Edit Code打开Code信息如下:经查Data at the root level is invalid是XML文件的
- 用SQL语句添加删除修改字段 1.增加字段 alter table docdsp add dspcode char(200) 2.删除字段
- 目录先明确几点赋值浅拷贝深拷贝总结先明确几点不可变类型:该数据类型对象所指定内存中的值不可以被改变。(1)、在改变某个对象的值时,由于其内存
- 解决golang编译提示dial tcp 172.217.160.113:443: connectex: A connection atte
- 介绍Go使用goroutines来处理connection的读写事件,不会阻塞:c, err := srv.newConn(rw) &nbs
- python中支持SSH协议的模块主要有Paramiko和netmiko两种,本次实验采用netmiko模块。netmikko模块为pyth
- 本文实例讲述了Python3对称加密算法AES、DES3。分享给大家供大家参考,具体如下:python3.6此库安装方式,需要pip3 in
- 今天来分享一个“高大上”的技术——使用python编写一个可以用微信远程控制电脑的程序!先来分析一下控制的具体流程:我们使用微信给特定的邮箱
- 一、pip简介Pip 是安装python包的工具,提供了安装包,列出已经安装的包,升级包以及卸载包的功能。Pip 是对easy_instal
- 这是一个基于Go语言开发的单点登录系统,实现手机号注册、手机号+验证码登录、手机号+密码登录、账号登出等功能,用户认证采用cookie和jw
- 本文实例讲述了Python简单实现自动删除目录下空文件夹的方法。分享给大家供大家参考,具体如下:总是发现电脑用上一段时间,各种软件生成各种目
- 页面域关系:主页面a.html所属域A:www.aspxhome.com被iframe的页面b.html所属域B:www.cidianwan
- 背景一直以来,中式占卜都是基于算命先生手工实现,程序繁琐(往往需要沐浴、计算天时、静心等等流程)。准备工作复杂(通常需要铜钱等道具),计算方
- 聊一聊Python与网络爬虫。1、爬虫的定义爬虫:自动抓取互联网数据的程序。2、爬虫的主要框架爬虫程序的主要框架如上图所示,爬虫调度端通过U
- 测试语法如下:powered by jb51.netexec GetRecordFromPage news,newsid,10,100000
- 前言在学习go语言时,做算法题会很经常遇到go语言的各种int类型,为什么会有int、int8、int16等等的类型呢?为什么不像java一
- 你在使用pandas处理DataFrame中是否遇到过如下这类问题?我们需要删除某一列所有元素中含有固定字符元素所在的行,比如下面的例子:&
- 基于 Snapchat 的增强现实胡子挂件融合第一个项目中,我们将在检测到的脸上覆盖了一个小胡子。我们可以使用从摄像头捕获的连续视频帧,也可