1. xml文件格式示例
<?xml version='1.0' encoding='utf-8'?>
<users>
<user>
<id>1</id>
<name>lili</name>
<telephone>1514446</telephone>
</user>
<user>
<id>2</id>
<name>liming</name>
<telephone>1365945</telephone>
</user>
</users>
1.1 import代碼
from xml.etree import ElementTree as ET
from xml.etree.ElementTree import Element
import os
import time
2. 讀取xml文件格式(如果沒有就新建)
XMLFile = os.getcwdu() + "/xml/phone.xml"
def read_xml():
if not os.path.exists(XMLFile):
fo = open(XMLFile,"w")
fo.write("<?xml version='1.0' encoding='utf-8'?><users></users>")
fo.close()
root = ET.parse(XMLFile).getroot()
users = root.findall('user')
userArr = []
for user in users:
id = user.find(“id”).text
name = user.find("name").text
tele = user.find("telephone").text
userInfo = {
"id": id,
"name": name,
"telephone": tele
}
userArr.append(userInfo)
return userArr
3. 插入節點
def insert(name, telephone):
tree = ET.parse(XMLFile)
root = tree.getroot()
user = Element("user")
root.append(user)
idNode = Element("id")
idNode.text = generateID()
user.append(idNode)
nameNode = Element("name")
nameNode.text = name
user.append(nameNode)
phoneNode = Element("telephone")
phoneNode.text = telephone
user.append(phoneNode)
try:
tree.write(XMLFile, encoding="utf-8", xml_declaration=True)
return 1
except Exception as e:
print e
return 0
4.更新節點
def update(id, name, telephone):
tree = ET.parse(XMLFile)
root = tree.getroot()
users = root.findall('user') # 找到所有user節點
for user in users:
if user.find("id").text == id:
teleNode = user.find("telephone")
teleNode.text = telephone
nameNode = user.find("name")
nameNode.text = name
try:
tree.write(XMLFile, encoding="utf-8", xml_declaration=True)
return 1
except Exception as e:
print e
return 0
5.刪除節點
def delete(id):
tree = ET.parse(XMLFile)
root = tree.getroot()
users = root.findall('user') # 找到所有user節點
for user in users:
if user.find("id").text == id:
user.remove(user.find("id"))
user.remove(user.find("name"))
user.remove(user.find("telephone"))
user.clear()
root.remove(user)
try:
tree.write(XMLFile, encoding="utf-8", xml_declaration=True)
return 1;
except Exception as e:
print e
return 0;
6.根據時間生成id
def generateID():
return time.strftime('%Y%m%d_%H%M%S')