import xml.etree.ElementTree as et
parser = et.parse("data.xml");
root = parser.getroot();
addr = et.Element("addr");
addr.text="Beijing";
cellular=et.Element("cellular");
cellular.text="187313211001";
list_Element=[addr,cellular];
for item in range(len(root)):
root[item].extend(list_Element);
parser.write("data.xml",encoding="utf-8");
操作数据的源文件XML
<students>
<student no="2009081097">
<name nickname="apple">jack</name>
<gender>M</gender>
<age updated="yes">89</age>
<score subject="math">97</score>
<score subject="chinese">90</score>
</student>
<student no="2009081098">
<name nickname="apple">sunny</name>
<gender>W</gender>
<age updated="yes">90</age>
<score subject="math">87</score>
<score subject="chinese">96</score>
</student>
<student no="2009081099">
<name nickname="apple">Anna</name>
<gender>M</gender>
<age updated="yes">88</age>
<score subject="math">64</score>
<score subject="chinese">98</score>
</student>
</students>
__author__ = 'sandy'
#_*_coding:utf-8_*_
import xml.etree.cElementTree as et
import xml.etree.ElementTree as ets
#解析文件
parser = et.parse("data.xml");
#获取根节点
root = parser.getroot();
#获取标签名字
print root.tag
#获取属性
attr = root.attrib;
#通过索引访问节点
print root[0][0].text;
#查找根目录下面的子元素
for name in root.findall("student"):
#查找一个具体的元素
print name.find("age").get("updated");
#获取属性
print name.get("no");
#获取student元素
#更改student.age年龄
#获取name设置属性
#写入文档
for child in root.iter("student"):
new_age = int(child.find("age").text)+10;
child.find("age").text = str(new_age);
child.find("name").set("nickname","apple");
parser.write("data.xml");
#查找根目录下面的子元素
#查找age
#如果大于age删除元素
#写入文档
for offspring in root.findall("student"):
age = int(offspring.find("age").text);
if(age > 60):
root.remove(offspring);
parser.write("data.xml");
#创建元素
father = et.Element("father");
father.text = "Jason";
son = et.SubElement(father,"son");
son.text = "Lan";
daughter=et.SubElement(father,"daughter");
daughter.text="sunny";
print et.dump(father);
exit();
#迭代属性
for child in root:
print ("iterator node name is {} , attr is {}").format(child.tag,child.attrib);
for student in root.findall('student'):
id = student.get("no");
name = student.find("name").text;
print (id,name)
for age in root.iter('age'):
new_age = int(age.text)+1
age.text = str(new_age);
age.set('updated','yes')
parser.write("data.xml");
for name in root.iter("student"):
#print name.tag;
print name.attrib["no"];
#_*_coding:utf-8_*_
import xml.etree.ElementTree as et
father = et.Element("father");
father.text = "Jason";
son = et.SubElement(father,"son");
son.text = "Lan";
daughter=et.SubElement(father,"daughter");
daughter.text="sunny";
#print et.dump(father);
#类似获取根节点
root = et.ElementTree(father);
#写入文件 用什么编码 是否要申明头部文件
root.write("student.xml",encoding="utf-8",xml_declaration=True);
#添加子节点
hobby = et.Element("hobby");
hobby.text="C++"
address = et.Element("Address");
address.text="NewYork";
list_Element = [hobby,address];
#扩展子节点
root[0].extend(list_Element);
#写入文档数据
parser.write("data.xml");
#迭代内部文本数据
#for item in root.itertext():
# print item;
for item in root.iter("student"):
#获取所有的ID值
print item.keys();
#获取所有的Key/name
print item.items();
parser = et.parse("data.xml");
root = parser.getroot();
#clear all subElement
root.clear();
parser.write("data.xml");
import xml.etree.ElementTree as et
parser = et.parse("data.xml");
root = parser.getroot();
addr = et.Element("addr");
addr.text="Beijing";
cellular=et.Element("cellular");
cellular.text="187313211001";
list_Element=[addr,cellular];
for item in range(len(root)):
root[item].extend(list_Element);
parser.write("data.xml",encoding="utf-8");
#_*_ coding:utf-8 _*_
import xml.etree.ElementTree as et
parser = et.parse("data.xml");
root = parser.getroot();
#查找元素并且迭代出来 只能迭代A-下面的儿子的元素 这个函数 Python2.7才有
for item in root.iterfind("name"):
print item;