xml文档_扣丁学堂解析Python开发实现读取/更改/写入xml文件操作源码示例

今天,按钮学校的Python培训老师仍然与大家分享Python实现的读取/更改/写入xml文件的操作,其中涉及到对Python相关实现技术的源代码示例的分析,如读取、节点操作、写入等。让我一起看看它们。

xml文档

原始文档内容(test.xml):<?XML version = " 1.0 " encoding = " UTF-8 "?>;<。框架>。<。处理器><。processername = " aProcesser " file = " lib 64/a . so " path = "/tmp " >;<。/processor & gt。<。processorname = " b processor " file = " lib 64/b . so " value = " for delete " >;<。/processor & gt。<。processorname = " b processor " file = " lib 64/b . so 2222222 "/& gt。<。服务>。<。servicename="search "前缀="/bin/search?"output _ formatter = " Output formatter:service _ Inc " & gt。<。link sequence = " chain 1 "/& gt。<。chainsequency = " chain2 " ><。/chain>。<。/service>。<。servicename="update "前缀="/bin/update?">;<。link sequence = " chain 3 " value = " for delete "/& gt。<。/service>。<。/services>。<。/processors & gt。<。/framework>。Python操作xml代码:#-*-编码:UTF-8-*-' ' '创建于2018年8月30日@作者:管理员''''来自XML。伊特瑞。元素树导入树。Elementdefread_xml(in_path):“”“”读取并解析xml文件in _ path:xml path return:element tree '''' tree = element tree . parse(in _ path)returntreedfwrite _ xml(树,Out_path:“”)将XML文件写入树外:XML树out_path:写入路径' ' ' '树。写(out _ path,encoding = "utf-8 ",XML _ declaration = true)defif _ match(node,Kv_map):“”'判断一个节点是否包含所有传入的参数属性node: node kv_map: map由属性和属性值组成' ' ' forkeyinkv _ map: ifnode.get (key)!=kv_map.get(键):returntreeFailReturnTRUe # search-def find _ nodes(树,路径):“”“查找所有节点”树:xml树路径:节点路径“”return树。find ll(path)defget _ node _ by _ key value(nodelist,kv _ map):“”“”根据属性和属性值定位匹配的节点。返回节点节点列表:节点列表kv_map:匹配属性和属性值映射' ' ' ' result _ nodes = for odeinodelist:ifif _ match(node,kv_map):result _ nodes . append(node)返回result _ nodes # change-def change _ node _ properties(nodelist,kv_map,Is_delete=False):' ' ' ' ' '修改/添加/删除节点属性和属性值节点列表:节点列表kv _ map:属性和属性值映射' ' ' ' for odeinodelist:forkeyinkv _ map:IFIs _ Delete:ifkeinnode。 Is_delete=False):''''''' '更改/增加/删除文本节点列表:节点列表文本:已更新的文本' ' ' '用于odein delist:IFIs _ Add:node . text+= text elifis _ Delete:node . text = " " else:node . text = textdefcreate _ node(标记,属性_映射,内容):''''创建新节点标记:节点标记属性_映射:属性和属性值映射内容:节点结束标记中的文本内容返回新节点' ' ' '元素=元素(标记,属性_映射)元素。text = contentreturnelementdefadd Nodelist:父节点列表标记:子节点标记kv _ map:parent _ nodein delist:children = parent _ node . getchildren for children in Children:if child . tag = = tagandif _ match(ch Ild,kv _ map):parent _ node . remove(child)if _ _ name _ _ = " _ _ main _ _ ":# 1。读取xml文件树=读取_ XML(“d://test . XML”)# 2。属性修改# a .查找父节点=查找_节点(树,“处理器/处理器”)# b .准确定位子节点结果_节点=获取_节点_按_键值(节点,{“名称”:“处理器”}) # c .修改节点属性更改_节点_属性(结果_节点,{“年龄”:“1”})# d .删除节点属性更改_节点_属性(结果_节点,{“值”:“},true) # 3。节点修改# a .新节点a =创建_节点(“人”,{“年龄”:“15”,“钱”:“200000”},“这是最后的内容”)# B .添加_子节点(结果_节点,A) # 4。删除节点#定位父节点del _ Parent _ Nodes =查找节点(树,“处理器/服务/服务”)#目标_ DEL _ NODE = DEL _ NODE _ BY _ TAGKEYVALUE(DEL _ PARENT _ NODES,“链”),它准确地定位和删除子节点。{ " sequence ":" chain 1 " })# 5。修改节点文本#定位节点文本_节点= get _ node _ by _ keyvalue(查找节点(树,“处理器/服务/服务/链”),{“顺序”:“链3”})更改_ node _ text(文本_节点,“新文本”)# 6。修改后输出到结果文件write_xml(树型):<?xmlversion='1.0 '编码='utf-8 '?>;<。框架>。<。处理器><。processer file = " lib 64/a . so " name = " aProcesser " path = "/tmp " >;<。/processor & gt。<。processor age = " 1 " file = " lib 64/b . so " name = " b processor " >;<。personage = " 15 " money = " 200000 " >这是最后的内容/person>。<。/processor & gt。<。processor age = " 1 " file = " lib 64/b . so 2222222 " name = " b processor " >;<。personage = " 15 " money = " 200000 " >这是最后的内容/person>。<。/processor & gt。<。服务>。<。service name = " search " output _ formatter = " Output formatter:service _ Inc "前缀="/bin/search?">;<。link sequence = " chain 2 "/& gt。<。/service>。<。servicename="update "前缀="/bin/update?">;<。link sequence = " chain 3 " value = " for delete " >newtext & lt/chain>。<。/service>。<。/services>。<。/processors & gt。<。/framework>。以上详细介绍了按钮学校在Python中实现的读取/更改/写入xml文件的操作,希望对大家学习Python开发有所帮助。
干红葡萄酒配什么好喝_长城干红葡萄酒官网word不能粘贴_Word|如何粘贴表格
热门推荐
  • 城区常住人口300万以下_ 300万人城市落户无门槛,功夫更在“放开后”
  • 花呗_ 花呗分期最多能分多久?支付宝送60年免息买婚戒
  • 魔兽小兵合成攻略_魔兽小兵合成最强兵种
  • 查看不了十张朋友圈_朋友圈发不了二张图片怎么办
  • 中商昆仑国际投资公司_中商投融国际投资有限公司
  • 美容招聘内容怎么写_美容院招聘范文简短
  • 简单舞蹈视频现代舞小学生_跟舞蹈花木兰差不多的舞
  • 上海康业排名_上海康业建筑装饰工程官网
  • 西班牙人西甲赛程_2019西甲西班牙人队赛程
  • 新婚之夜,婆婆推门看到一幕,痛斥儿媳无耻,却亲手毁掉了儿子的生活。
  • 诺基亚奥利奥_诺基亚小奥利奥
  • 天天中彩票怎么销户_天天中彩票中奖怎么取
  • 老师好于谦_老师好于谦种子
  • 录视频软件哪个好_录视频软件排行榜
  • 无声的世界 聋哑人_聋哑人的心理世界
  • 一岁宝宝喜欢玩什么玩具_一岁小孩玩什么好
  • bilibili视频怎么下载_手机上如何下载bilibili的视频
  • 什么软件能做英语题_什厶软件能做小学英语题
  • 股市教练怎么用_股市dmi怎么用
  • lol云顶之弈沙漠剑士阵容_《lol》云顶之弈沙漠召唤希维尔怎么玩 阵容搭配及玩法