python中xml.dom.minidom常用方法

一、加载和读取 xml 文件

import xml.dom.minidom  
doc = xml.dom.minidom.parse(xmlfile)

二、常用操作

以下方法,对根节点 root 和子节点 node 都适用:

1、获取 xml 文档对象

root = doc.documentElement

2、节点属性

root.nodeName  # 每个节点都有它的 nodeName,nodeValue, nodeType属性;
root.nodeValue  # nodeValue 是节点的值,支队本文本节点有效;
root.nodeType  # 节点类型;
root.ELEMENT_NODE

3、属性值的获取、修改、删除

root.getAttribute(attributeName)  # 获取 xml 节点属性值;
root.setAttribute(attributeName, value)  # 修改或添加 xml 节点属性值;
root.getElementsByTagName(TagName)  # 根据标签获取 xml 节点对象集合
root.removeAttribute(attributeName)  # 删除 xml 节点属性值;

4、子节点的访问

root.childNodes  # 获取子节点列表;
root.childNodes[index].nodeValue  # 获取 xml 节点值;
root.firstChild  # 访问第一个节点(相当于 root.childNodes[0]);
root.childNodes[0].data  # 获得文本值;

5、删除子节点

node.removeChild(childnode_in_node)  # 删除 node 节点下面的子节点 childnode_in_node

6、生成节点

node.createElement('activity')  # 生成节点  # 文本节点.createTextNode('xxxxx')
关于Python中`minidom`模块对XML文件的解析和创建,可以参考以下步骤: ### 创建XML文件 1. **导入minidom模块**: ```python from xml.dom import minidom ``` 2. **创建DOM树对象**: ```python dom = minidom.Document() ``` 3. **创建根节点并添加到DOM树**: ```python root_node = dom.createElement('root') dom.appendChild(root_node) ``` 4. **创建子节点并设置属性**: ```python book_node = dom.createElement('book') book_node.setAttribute('price', '199') root_node.appendChild(book_node) ``` 5. **创建文本节点并添加到子节点**: ```python name_node = dom.createElement('name') name_text = dom.createTextNode('计算机程序设计语言 第1版') name_node.appendChild(name_text) book_node.appendChild(name_node) ``` 6. **将DOM树写入文件**: ```python try: with open('dom_write.xml', 'w', encoding='UTF-8') as fh: dom.writexml(fh, indent='', addindent='\t', newl='\n', encoding='UTF-8') print('OK') except Exception as err: print(f'错误:{err}') ``` ### 解析XML文件 1. **导入minidom模块**: ```python from xml.dom import minidom ``` 2. **读取XML文件并获取DOM对象**: ```python dom = minidom.parse('dom_write.xml') ``` 3. **获取特定元素节点的文本内容**: ```python author = dom.getElementsByTagName('author')[0].childNodes[0].data print(author) ``` 4. **获取根节点及其相关信息**: ```python root = dom.documentElement print(root.nodeName) # 节点名称 print(root.nodeType) # 节点类型 print(root.childNodes) # 所有子节点 ``` 5. **获取特定标签的元素节点及其属性**: ```python book = root.getElementsByTagName('book') print(book[0].getAttribute('price')) ``` 6. **获取节点的父节点**: ```python print(author.parentNode.nodeName) ``` 更多详细信息和示例代码可以参考原作者的文章:[Python minidom模块(DOM写入和解析XML)](https://blog.csdn.net/qq_20033259/article/details/136014293)。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值