使用python对xml文件实现增删改查的简单封装
2018-01-30 11:06
337 查看
博客已经好久没有更新了,博主现在开始玩Python了,因为公司要求以后我做Python这一块,已经研究了几个星期了。
以后还会用C或者 C++的。
在去年的这段时间还在奋斗在openframeworks,这期间发生了很多事,话不多说,直接上代码。
----------------------------------------------------------------------------------------------------------------------------------
XML.py:
__author__ = 'Barton'
#coding=utf-8
import xml.etree.ElementTree as ET
#from xml.dom import minidom
class XML(object):
def __init__(self, path):
self.path = path
#From system load xml file,getroot()get root node
self.tree = ET.parse(self.path)
self.root = self.tree.getroot()
#create dict for store config
self.tag = {}
'''
#unfinished,suggest use minicom, the function will make xml file be chaos
def addTag(self, tagName, content):
newEle = ET.Element(tagName)
newEle.text = content
self.root.append(newEle)
#self.tree.write("self.path")
#unfinished, the function will make xml file be chaos
def delTag(self, tagName):
for child in self.root:
self.tag[child.tag] = child.text
if tagName in self.tag:
for child in self.root:
if tagName == child.tag:
self.root.remove(child)
#self.tree.write(self.path)
return True
else:
return False
'''
def setTag(self, tagName, content):
for child in self.root:
self.tag[child.tag] = child.text
if tagName in self.tag:
self.root.find(tagName).text = content
#self.tree.write(self.path)
return True
else:
return False
def getTag(self, tagName):
for child in self.root:
self.tag[child.tag] = child.text
if tagName in self.tag:
return self.tag[tagName]
else:
return False
def getAllTag(self):
for child in self.root:
self.tag[child.tag] = child.text
return self.tag
def save(self):
self.tree.write(self.path)
if "__main__" == __name__:
test = XML('config.ini')
print(test.getTag('admincode'))
print(test.getAllTag())
test.setTag('admincode3', 'abbbbbbbbbbbbbba')
test.save()
print(test.getAllTag())---------------------------------------------------------------------------------------------------------------------------------
上边实现了增删改查功能,其中增删功能会导致格式有些错乱,解决方法已经注释了。在公司的项目需求中只用到查和改功能,增和删是顺手加上的,以后如果要用的话继续去完成。下边上测试代码,及xml文件,测试在windows和linux下都没有什么问题。
----------------------------------------------------------------------------------------------------------------------------------
test.py:
from XML import XML
if "__main__" == __name__:
test = XML('config.ini')
print(test.getAllTag())
print(test.getTag('adminCode'))
test.setTag('adminCode', '123456')
test.save()
print(test.getTag('adminCode')
----------------------------------------------------------------------------------------------------------------------------------
config.xml:
<config>
<adminCode>pixelplus</adminCode>
<adminCode1>pixelplus1</adminCode1>
<adminCode2>pixelplus2</adminCode2>
<adminCode3>pixelplus3</adminCode3>
</config>
----------------------------------------------------------------------------------------------------------------------------------
排版有点伤。。vi用习惯了,感觉其它编辑环境都很难受(╯﹏╰)
以后还会用C或者 C++的。
在去年的这段时间还在奋斗在openframeworks,这期间发生了很多事,话不多说,直接上代码。
----------------------------------------------------------------------------------------------------------------------------------
XML.py:
__author__ = 'Barton'
#coding=utf-8
import xml.etree.ElementTree as ET
#from xml.dom import minidom
class XML(object):
def __init__(self, path):
self.path = path
#From system load xml file,getroot()get root node
self.tree = ET.parse(self.path)
self.root = self.tree.getroot()
#create dict for store config
self.tag = {}
'''
#unfinished,suggest use minicom, the function will make xml file be chaos
def addTag(self, tagName, content):
newEle = ET.Element(tagName)
newEle.text = content
self.root.append(newEle)
#self.tree.write("self.path")
#unfinished, the function will make xml file be chaos
def delTag(self, tagName):
for child in self.root:
self.tag[child.tag] = child.text
if tagName in self.tag:
for child in self.root:
if tagName == child.tag:
self.root.remove(child)
#self.tree.write(self.path)
return True
else:
return False
'''
def setTag(self, tagName, content):
for child in self.root:
self.tag[child.tag] = child.text
if tagName in self.tag:
self.root.find(tagName).text = content
#self.tree.write(self.path)
return True
else:
return False
def getTag(self, tagName):
for child in self.root:
self.tag[child.tag] = child.text
if tagName in self.tag:
return self.tag[tagName]
else:
return False
def getAllTag(self):
for child in self.root:
self.tag[child.tag] = child.text
return self.tag
def save(self):
self.tree.write(self.path)
if "__main__" == __name__:
test = XML('config.ini')
print(test.getTag('admincode'))
print(test.getAllTag())
test.setTag('admincode3', 'abbbbbbbbbbbbbba')
test.save()
print(test.getAllTag())---------------------------------------------------------------------------------------------------------------------------------
上边实现了增删改查功能,其中增删功能会导致格式有些错乱,解决方法已经注释了。在公司的项目需求中只用到查和改功能,增和删是顺手加上的,以后如果要用的话继续去完成。下边上测试代码,及xml文件,测试在windows和linux下都没有什么问题。
----------------------------------------------------------------------------------------------------------------------------------
test.py:
from XML import XML
if "__main__" == __name__:
test = XML('config.ini')
print(test.getAllTag())
print(test.getTag('adminCode'))
test.setTag('adminCode', '123456')
test.save()
print(test.getTag('adminCode')
----------------------------------------------------------------------------------------------------------------------------------
config.xml:
<config>
<adminCode>pixelplus</adminCode>
<adminCode1>pixelplus1</adminCode1>
<adminCode2>pixelplus2</adminCode2>
<adminCode3>pixelplus3</adminCode3>
</config>
----------------------------------------------------------------------------------------------------------------------------------
排版有点伤。。vi用习惯了,感觉其它编辑环境都很难受(╯﹏╰)
相关文章推荐
- salesforce 零基础学习(五十一)使用 Salesforce.com SOAP API 实现用户登录以及简单的增删改查(JAVA访问salesforce)
- Greendao 简单实现增删改查使用过GreenDao的同学都知道,3.0之前需要通过新建GreenDaoGenerator工程生成Java数据对象(实体)和DAO对象,非常的繁琐而且也加大了使用成
- mongodb的简单使用二(结合springdata实现增删改查)
- python3.6 使用 pymysql 连接 Mysql 数据库及 简单的增删改查操作
- Python Sql数据库增删改查操作简单封装
- Hibernate中JPA的简单使用,实现简单的对表的增删改查操作
- 使用libxml2实现简单合并两个不同的xml文件
- 使用python多线程实现一个简单spider
- 使用jdbc实现增删改查示例
- 用Python实现简单的HTTP服务器(1)--使用Firebug简单分析HTTP协议
- PHP程序中使用PDO对象实现对数据库的增删改查操作的示例代码
- PHP程序中使用PDO对象实现对数据库的增删改查操作(PHP+smarty)
- Android开发(10)使用SQLiteDatabase操作SQLite数据库实现增删改查(源码)
- python —— 使用logging模块简单实现日志系统
- python3使用tkinter实现ui界面简单实例
- 使用 Dojo 和 Grails 快速实现数据的增删改查(CRUD)
- 使用NetBox简单实现ASP封装为EXE教程
- 使用python多线程实现一个简单spider
- PHP使用mysqli扩展库实现增删改查(面向对象版)
- 用Python 实现刷钻网上抢任务,并实现一个简单的限制使用时间的功能