解析xml,支持utf-8及utf-16
时间: 2023-08-19 13:05:06 浏览: 66
要解析XML并支持UTF-8和UTF-16编码,可以使用Python内置的ElementTree模块。
首先,使用`open()`函数打开XML文件并读取内容,然后使用`xml.etree.ElementTree.fromstring()`方法将XML字符串转换为Element对象。在这个过程中,如果XML文件使用UTF-8编码,可以不用进行任何编码转换;但如果XML文件使用UTF-16编码,需要在读取XML文件时指定编码类型。例如:
```python
import xml.etree.ElementTree as ET
with open('example.xml', encoding='utf-16') as f:
xml_string = f.read()
root = ET.fromstring(xml_string)
```
一旦将XML字符串转换为Element对象,就可以使用Element对象的各种方法和属性来访问XML文件的各个部分。例如,使用`root.findall()`方法可以查找所有与给定标签名称匹配的元素。例如:
```python
for item in root.findall('.//item'):
print(item.text)
```
这将查找XML文件中所有名为`<item>`的元素,并打印它们的文本内容。
注意,如果XML文件中包含命名空间,需要在标签名称前添加命名空间前缀。例如,如果XML文件中定义了命名空间`xmlns:ns="http://www.example.com/ns"`,那么在查找`<item>`元素时应该使用`root.findall('.//ns:item')`。
阅读全文