Pythonminidom模块⽤法⽰例【DOM写⼊和解析XML】本⽂实例讲述了Python minidom模块⽤法。分享给⼤家供⼤家参考,具体如下:
⼀、DOM写XML⽂件
# -*- coding:utf-8 -*-
#!python3
#导⼊minidom
from xml.dom import minidom
# 1.创建DOM树对象
dom=minidom.Document()
# 2.创建根节点。每次都要⽤DOM对象来创建任何节点。
root_ateElement('root')
# 3.⽤DOM对象添加根节点
dom.appendChild(root_node)
# ⽤DOM对象创建元素⼦节点
book_ateElement('book')
# ⽤⽗节点对象添加元素⼦节点
root_node.appendChild(book_node)
# 设置该节点的属性
book_node.setAttribute('price','199')
name_ateElement('name')
root_node.appendChild(name_node)
# 也⽤DOM创建⽂本节点,把⽂本节点(⽂字内容)看成⼦节点
name_ateTextNode('计算机程序设计语⾔第1版')
# ⽤添加了⽂本的节点对象(看成⽂本节点的⽗节点)添加⽂本节点
name_node.appendChild(name_text)
# 每⼀个结点对象(包括dom对象本⾝)都有输出XML内容的⽅法,如:toxml()--字符串, toprettyxml()--美化树形格式。
try:
with open('l','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))
⽣成的l⽂件结果如下:
<?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('l','r',encoding='utf8') as fh:
# parse()获取DOM对象
dom=minidom.parse(fh)
# 获取根节点
root=dom.documentElement
# 节点名称
deName)
# 节点类型:'ELEMENT_NODE',元素节点; 'TEXT_NODE',⽂本节点; 'ATTRIBUTE_NODE',属性节点
deType)
# 获取某个节点下所有⼦节点,是个列表
print(root.childNodes)
# 通过dom对象或根元素,再根据标签名获取元素节点,是个列表
ElementsByTagName('book')[0]
# 获取节点属性
Attribute('price'))
# 获取某个元素节点的⽂本内容,先获取⼦⽂本节点,然后通过“data”属性获取⽂本内容
ElementsByTagName('name')[0]
name_text_node=name.childNodes[0]
print(name_text_node.data)
# 获取某节点的⽗节点
print(deName)
运⾏输出:
root
python处理xml文件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操作的在线⼯具供⼤家参考使⽤:
更多关于Python相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》及《》
希望本⽂所述对⼤家Python程序设计有所帮助。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论