倒桩树
import xml.etree.ElementTree as ET 导包
# #1先加载文档到内存里 形成一个倒桩的树结构
# tree=ET.parse('mingming.xml')
# #2获取根节点
# root=tree.getroot()
# mingming={}
# print('root-tag:',root.tag,',attrib:',root.attrib,',text:',root.text)
# for ele in root:
# # print('tag:', ele.tag, ',attrib:', ele.attrib)
# value=[]
# for e in ele:
# #print('tag:', e.tag, ',attrib:', e.attrib,'text:',e.text)
# if e.text is None:
# value.append(e.attrib)
# else:
# value.append({e.tag:e.text})
# mingming[ele.attrib['name']]=value
# print(mingming)
#1先加载文档到内存里,形成一个倒桩的树结构
tree=ET.parse('mingming.xml') 获取xml文件
#2获取根节点
root=tree.getroot()
nodes=root.findall('country')
for node in nodes:
if node.attrib['name']=='Liechtenstein':
root.remove(node)
break
tree.write('mingbai.xml')
print('删除完成')
Sax_Read
import xml.sax 导包
class MovieHandler( xml.sax.ContentHandler ): 建造类
def __init__(self): 创建变量
self.CurrentData = ""
self.type = ""
self.format = "" 变量名
self.year = ""
self.rating = ""
self.stars = ""
self.description = ""
# Call when an element starts
def startElement(self, tag, attributes): 创建新变量startElement
self.CurrentData = tag 令CurrentData赋值给tag
if tag == "movie": 判断如果tag完全等于movie
print ("*****Movie*****") 输出
title = attributes["title"] 新变量title被attributes数组赋值
print ("Title:", title) 输出新的变量titile
# Call when an elements ends
def endElement(self, tag): 创建新的变量endElements
if self.CurrentData == "type":
print ("Type:", self.type)
elif self.CurrentData == "format":
print ("Format:", self.format)
elif self.CurrentData == "year":
print ("Year:", self.year) 判断属性是否相等并输出
elif self.CurrentData == "rating":
print ("Rating:", self.rating)
elif self.CurrentData == "stars":
print ("Stars:", self.stars)
elif self.CurrentData == "description":
print ("Description:", self.description)
self.CurrentData = ""
# Call when a character is read
def characters(self, content):
if self.CurrentData == "type":
self.type = content
elif self.CurrentData == "format":
self.format = content
elif self.CurrentData == "year":
self.year = content
elif self.CurrentData == "rating":
self.rating = content
elif self.CurrentData == "stars":
self.stars = content
elif self.CurrentData == "description":
self.description = content
if ( __name__ == "__main__"): 判断属性和main 是否相等
# create an XMLReader
parser = xml.sax.make_parser()
# turn off namepsaces
parser.setFeature(xml.sax.handler.feature_namespaces, 0)
# override the default ContextHandler
Handler = MovieHandler()
parser.setContentHandler( Handler )
parser.parse("movies.xml")