python读取xml文件有哪些方法

Python016

python读取xml文件有哪些方法,第1张

1、以下几种方法建议初学者使用:

xml.etree.ElementTree

xml.dom

xml.dom.minidom

xml.dom.pulldom

xml.parsers.expat

其中,第一个模块更加轻便简介,对于简单的xml文档,推荐使用

下面的方法涉及知识比较多,熟练掌握上面方法后可以了解使用:

2、Dom读取

3、Dom4j读取

使用dom4j需要导入相关的jar包

import java.io.File

import java.util.Iterator

import java.util.List

4、JDom读取

使用jdom需要导入相关的jar包

import java.io.FileInputStream

import java.io.InputStream

5、Sax读取   

6、properties的读取

问题 在使用python对xml文件进行读取时,提示ValueError: multi-byte encodings are not supported

xml是用gb2312编码的。

很多贴子上说把xml的编码格式改为utf-8,就可以正常执行了。

但是这里有一个问题,xml原先的编码格式和encoding字段显示的编码格式都是gb2312,如果只改了encoding字段,之后再使用这个xml文件,就会按utf-8解析gb2312,会造成不可预知的后果。

第二个问题就是指改一个xml文件还好,但是有几百上千的时候,改这个就不方便了。

解决方案 用parseString函数

python提供了两种xml的输入方式,一种是文件,一种是字符串。我们可以先将xml文件读入内存,然后关闭文件。再将xml字符串中的gb2312用replace改为utf-8,然后用parseString解析,这样就不会报错。

注意事项 如果文件过大,有可能内存不够,所以适用于小的xml文件。注意要把不使用的文件给close掉,以免占用文件描述符。