您的位置:首页 > 编程语言 > Python开发

python中使用minidom操作xml命令

2013-01-07 09:18 417 查看
整理一下在个人使用的一些有关的minidom操作xml的命令,备查

读取xml文件

1、引入minidom类

from xml.dom import minidom

2、获取xml文件并得到文档元素对象

path=minidom.parse('文件名称')

root=path.documentElement

3、通过元素名字的获取子元素

itemlist=root.getElementsByTagName('元素名称')

4、若元素存在属性,获取元素属性

item = itemlist[0]

item.getAttribute(‘属性名称’)

5、获取元素下的值(处理元素值中空格、回车等)

content=itemlist[0].childNodes[0].nodeValue

content="".join(content.split())

写入xml文件

1、打开要写入的xml文件

f=open("student.xml","w")

2、创建根节点及子节点、子节点内容

doc=minidom.Document()

infoNode=doc.createElement("info")

doc.appendChild(infoNode)

建立子节点并加入名称

nameNode=doc.createElement("name")

infoNode.appendChild(nameNode)

建立子节点内容并加入到子节点之下

nameTextNode = doc.createTextNode("mingzi")

nameNode.appendChild(nameTextNode)

若子节点需要另外的属性,则使用

nameNode.setAttribute("名称",值)

3、写入xml文件

doc.writexml(f,'\n',' ',' ',"utf-8")

下面是取自网络的解释

#第一个参数f就是你的目标文件对象,第二个参数好像是<?xml>和下面一个根节点的缩进排列格式,

第三个参数好像是其他节点与子节点的缩进排列格式,第四个参数制定了换行的格式(如果你填入" ",那就不换行了,所有的xml都缩在了一行上面 :) )

,第五个参数制定了xml内容的编码。除了第一个参数是必须的,其他参数都是可选择的。

4、其他

若写入的xml文件读取时为乱码,则还需要进行转码操作,此处需要用到codecs和chardet库

import codecs

import chardet

f=codecs.open('test.xml','r').read()

source_encoding=chardet.detect(f)['encoding']

f=f.decode('gbk')

codecs.open("test.xml", 'w', encoding='utf-8').write(f)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: