Python与xml之更新篇

本文介绍了如何使用Python的minidom库对XML文件进行修改,包括查找、更新节点值以及删除节点。通过示例展示了如何找到特定ID的班级节点,获取并修改学生人数,以及如何新增班级节点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Pythonxml之更新篇

       上一篇文章已经介绍如何解析xml文件,接下来是写与更新(modifydelete)xml文件的节点。对于xml的有关知识和学习资料在上一篇文章中已经有所介绍,这里就略去了。本文将使用dom来对xml进行操作。

       test.xml的结构如下:

       <?xml version="1.0" encoding="utf-8"?>

       <school>

              <class id=”09120016”>

                     <studentnumber>64<./studentnumber>

              <class>

              <class id=”09120015”>

                     <studentnumber>62<./studentnumber>

              <class>

       </school>

1、  导入minidomfrom xml.dom import minidom

2、  生成内存中的映射:self.xmlfile  = minidom.parse(“c://test.xml”)这时xmlfile在内存中为树状结构,其实也就是你xml的结构

3、  获得树状结构的第一级节点:self.children = self.xmlfile.firstChild.childNodes此时的children就是class节点的集合(它相当于一个存贮class节点的数组)

4、  更新包括增加、修改、删除数节点。获得班号为09120016class节点

i = 1

        while i <len(self.children):

               id = str(self.children[i].attributes['id'].value)

               if id == ‘09120016’

                      break

               i = i+2

        classnode = self.children[i]

classnode就是你要处理的节点(注意:i=1从数组的第一个开始取节点,i=i+2因为xml中的回车换行也算一个节点)

5、  获得如id之类的值在4中提到,那么如何过得如studentnumber标签对中的值呢?

通过children[i].getElementsByTagName("studentnumber")[0].firstChild.nodeValue就可以获得它的值,要改变它的值就把新值赋给它就可

6、  删除xml中的09120016班就把相应的节点删除就可以了

7、  要增加一个班级咋办呢?

建一个空的xml节点

<?xml version="1.0" encoding="utf-8"?>

              <school>

                     <class id=””>

                            <studentnumber><./studentnumber>

                     <class>

</school>

根据12步导成内存中的空节点,在根据345步相应的方法赋值,然后把该赋值后的节点加到children节点数组中(不要忘了先添加一个回车换行节点indentNode = self.xmlfile.createTextNode('/n'+'/t'*3)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值