Python minidom对xml文件的解析和创建
时间: 2024-11-04 15:13:52 浏览: 10
Python minidom模块用法示例【DOM写入和解析XML】
关于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)。
阅读全文