Python读写XML文档(lxml方式)
读写xml文档可以说是python基础。前段时间一直用xml.dom的方式读写xml文档。
但用起来比较繁琐,尤其是读写文本的时候特别麻烦。寻思换一种新的方式读写xml。
lxml和xml.etree.ElementTree两个的操作方式看起来差不多。xml.etree.ElementTree也是读写xml文档的一种方式。
lxml要更好一些,使用更简洁。解析xml的时候,自动处理各种编码问题。而且它天生支持 XPath 1.0、XSLT 1.0、定制元素类。
不过,lxml不是Python自带的标准库。需要自己安装,如下方式安装:
pip install lxml
下面看看如何使用lxml读写xml文档。
1、读取xml文档
1)文档解析
lxml可以解析xml的字符串,使用etree.fromstring方法,如下所示:
#coding:utf-8
from lxml import etree
xml_text = '<xml><head></head><body></body></xml>'
xml = etree.fromstring(xml_text)
lxml可以直接读取xml文件。
为了演示方便,找个xml文档作为例子,文件名为test.xml:
<?xml version="1.0" encoding="utf-8"?>
<root version="1.2" tag="test">
<head>
<title>test xml document</title>
</head>
<body>
<items id="1">
<source>aa</source>
<target>AA</target>
</items>
<items id="2">
<source>bb</source>
<target>BB</target>
</items>
<items id="3">
<source>cc</source>
<target id="3t">CC<bpt id="3t1"/>cc</target>