亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

Python實現的讀取/更改/寫入xml文件操作示例

2020-02-15 22:52:26
字體:
來源:轉載
供稿:網友

本文實例講述了Python實現的讀取/更改/寫入xml文件操作。分享給大家供大家參考,具體如下:

原始文檔內容(test.xml):

<?xml version="1.0" encoding="UTF-8"?><framework>  <processers>    <processer name="AProcesser" file="lib64/A.so"      path="/tmp">    </processer>    <processer name="BProcesser" file="lib64/B.so" value="fordelete">    </processer>    <processer name="BProcesser" file="lib64/B.so2222222"/>    <services>      <service name="search" prefix="/bin/search?"        output_formatter="OutPutFormatter:service_inc">        <chain sequency="chain1"/>        <chain sequency="chain2"></chain>      </service>      <service name="update" prefix="/bin/update?">        <chain sequency="chain3" value="fordelete"/>      </service>    </services>  </processers></framework>

Python操作xml代碼:

# -*- coding:utf-8 -*-'''Created on 2018年8月30日@author: Administrator'''from xml.etree.ElementTree import ElementTree,Elementdef read_xml(in_path):  '''''讀取并解析xml文件    in_path: xml路徑    return: ElementTree'''  tree = ElementTree()  tree.parse(in_path)  return treedef write_xml(tree, out_path):  '''''將xml文件寫出    tree: xml樹    out_path: 寫出路徑'''  tree.write(out_path, encoding="utf-8",xml_declaration=True)def if_match(node, kv_map):  '''''判斷某個節點是否包含所有傳入參數屬性    node: 節點    kv_map: 屬性及屬性值組成的map'''  for key in kv_map:    if node.get(key) != kv_map.get(key):      return False  return True#---------------search -----def find_nodes(tree, path):  '''''查找某個路徑匹配的所有節點    tree: xml樹    path: 節點路徑'''  return tree.findall(path)def get_node_by_keyvalue(nodelist, kv_map):  '''''根據屬性及屬性值定位符合的節點,返回節點    nodelist: 節點列表    kv_map: 匹配屬性及屬性值map'''  result_nodes = []  for node in nodelist:    if if_match(node, kv_map):      result_nodes.append(node)  return result_nodes#---------------change -----def change_node_properties(nodelist, kv_map, is_delete=False):  '''''修改/增加 /刪除 節點的屬性及屬性值    nodelist: 節點列表    kv_map:屬性及屬性值map'''  for node in nodelist:    for key in kv_map:      if is_delete:        if key in node.attrib:          del node.attrib[key]      else:        node.set(key, kv_map.get(key))def change_node_text(nodelist, text, is_add=False, is_delete=False):  '''''改變/增加/刪除一個節點的文本    nodelist:節點列表    text : 更新后的文本'''  for node in nodelist:    if is_add:      node.text += text    elif is_delete:      node.text = ""    else:      node.text = textdef create_node(tag, property_map, content):  '''''新造一個節點    tag:節點標簽    property_map:屬性及屬性值map    content: 節點閉合標簽里的文本內容    return 新節點'''  element = Element(tag, property_map)  element.text = content  return elementdef add_child_node(nodelist, element):  '''''給一個節點添加子節點    nodelist: 節點列表    element: 子節點'''  for node in nodelist:    node.append(element)def del_node_by_tagkeyvalue(nodelist, tag, kv_map):  '''''同過屬性及屬性值定位一個節點,并刪除之    nodelist: 父節點列表    tag:子節點標簽    kv_map: 屬性及屬性值列表'''  for parent_node in nodelist:    children = parent_node.getchildren()    for child in children:      if child.tag == tag and if_match(child, kv_map):        parent_node.remove(child)if __name__ == "__main__":  #1. 讀取xml文件  tree = read_xml("D://test.xml")  #2. 屬性修改  #A. 找到父節點  nodes = find_nodes(tree, "processers/processer")  #B. 通過屬性準確定位子節點  result_nodes = get_node_by_keyvalue(nodes, {"name":"BProcesser"})  #C. 修改節點屬性  change_node_properties(result_nodes, {"age": "1"})  #D. 刪除節點屬性  change_node_properties(result_nodes, {"value":""}, True)  #3. 節點修改  #A.新建節點  a = create_node("person", {"age":"15","money":"200000"}, "this is the firest content")  #B.插入到父節點之下  add_child_node(result_nodes, a)  #4. 刪除節點  #定位父節點  del_parent_nodes = find_nodes(tree, "processers/services/service")  #準確定位子節點并刪除之  target_del_node = del_node_by_tagkeyvalue(del_parent_nodes, "chain", {"sequency" : "chain1"})  #5. 修改節點文本  #定位節點  text_nodes = get_node_by_keyvalue(find_nodes(tree, "processers/services/service/chain"), {"sequency":"chain3"})  change_node_text(text_nodes, "new text")  #6. 輸出到結果文件  write_xml(tree, "D://xiugai.xml")            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色偷偷888欧美精品久久久| 国产99久久精品一区二区 夜夜躁日日躁| 日韩亚洲在线观看| 91免费视频网站| 这里只有精品视频| 91在线视频一区| 亚洲欧美日韩精品久久| 91av在线网站| 日韩黄色高清视频| 97超级碰在线看视频免费在线看| 视频在线观看99| 中日韩美女免费视频网址在线观看| 亚洲成av人片在线观看香蕉| 高清视频欧美一级| 亚洲在线第一页| 欧美成人午夜免费视在线看片| 亚洲free性xxxx护士hd| 欧美综合国产精品久久丁香| 欧美性猛交xxxx乱大交| 日韩免费黄色av| 日韩av在线天堂网| 国产欧美 在线欧美| 日韩成人av一区| 亚洲黄色有码视频| 久久精品国产成人精品| xxxxx成人.com| 国产精品视频精品| 精品国产户外野外| 国产精品99一区| 欧美亚洲另类激情另类| www日韩欧美| 久久久99免费视频| 久久这里有精品视频| 欧美精品一本久久男人的天堂| 欧美黑人性生活视频| 欧美精品日韩www.p站| 久久综合色影院| 国产精品久久久久久五月尺| 亚洲精选中文字幕| 日韩视频在线一区| 亚洲人线精品午夜| 欧美性色xo影院| 国产精品网红直播| 日本最新高清不卡中文字幕| 亚洲一区二区三区视频播放| 色小说视频一区| 午夜免费久久久久| 国产日韩欧美综合| 日韩动漫免费观看电视剧高清| 一区二区欧美亚洲| 欧美激情三级免费| 亚洲香蕉av在线一区二区三区| 国产精品尤物福利片在线观看| 亚洲国产小视频| 日产精品久久久一区二区福利| 成人精品aaaa网站| 精品国产自在精品国产浪潮| 国产精品成人播放| 91成人天堂久久成人| 亚洲aⅴ日韩av电影在线观看| 亚洲最大的成人网| 91精品国产高清久久久久久91| 久久夜色精品国产欧美乱| 久久99视频精品| 91精品视频在线看| 亚洲人成在线观| 欧美日韩在线免费| 国产亚洲视频在线观看| 色一情一乱一区二区| 97香蕉超级碰碰久久免费的优势| 一本一本久久a久久精品牛牛影视| 日韩在线观看免费全集电视剧网站| 久久香蕉精品香蕉| 中文字幕亚洲综合久久筱田步美| 性色av一区二区三区| 国产精品久久久久久久久男| 国产一区二区三区精品久久久| 亚洲美女动态图120秒| 国产欧美日韩专区发布| 国产在线视频2019最新视频| 亚洲aⅴ日韩av电影在线观看| 热久久视久久精品18亚洲精品| 高清视频欧美一级| 久久久久成人精品| 成人精品久久久| 亚洲国产免费av| 亚洲国产精品资源| 91在线视频成人| 91久久精品久久国产性色也91| xxx欧美精品| 国产日韩av在线播放| 日韩精品在线影院| 一本一本久久a久久精品综合小说| 国产精品视频免费在线观看| 亚洲精品视频二区| 国产精品中文字幕在线| 国产精品ⅴa在线观看h| 国产精品久久久亚洲| 久久久久久中文| 一本色道久久综合亚洲精品小说| 亚洲午夜小视频| 欧洲美女免费图片一区| 中文字幕亚洲字幕| 最新亚洲国产精品| 欧美成人剧情片在线观看| 国产精品无av码在线观看| 日韩不卡中文字幕| 91久久精品美女| 欧美亚洲另类视频| 欧美性xxxx极品高清hd直播| 最近2019年好看中文字幕视频| 日本一欧美一欧美一亚洲视频| 97色在线播放视频| 欧美老妇交乱视频| 亚洲激情中文字幕| 国产精品视频久久久| 国产成人精彩在线视频九色| 国产精品国产三级国产aⅴ浪潮| 欧美在线视频导航| 一区二区三区回区在观看免费视频| 亚洲а∨天堂久久精品9966| 2019日本中文字幕| 蜜臀久久99精品久久久久久宅男| 在线观看国产精品淫| 欧美一性一乱一交一视频| 美日韩精品免费观看视频| 久久精品国产欧美激情| 日本精品在线视频| 国产精品高潮呻吟久久av无限| 国产男女猛烈无遮挡91| 精品国产自在精品国产浪潮| 宅男66日本亚洲欧美视频| 色综合久久中文字幕综合网小说| 午夜精品久久久久久久99热| 日韩欧美在线视频免费观看| 高清一区二区三区日本久| 国语自产精品视频在线看抢先版图片| 亚洲aa中文字幕| 亚洲va码欧洲m码| 欧美日韩国产在线播放| 亚洲欧美国产精品| 日本欧美黄网站| 欧美成人免费在线观看| 亚洲精品色婷婷福利天堂| 日日噜噜噜夜夜爽亚洲精品| 日韩av影视在线| 欧美电影免费观看高清完整| 91av在线播放| 91av在线免费观看| 欧美成人黄色小视频| 97avcom| 久久精品影视伊人网| 欧美综合一区第一页| 国产精品亚洲自拍| 免费99精品国产自在在线| 美女国内精品自产拍在线播放| 亚洲精品videossex少妇| 亚洲精品久久在线| 最近2019年中文视频免费在线观看| 国产精品手机播放| 欧美午夜性色大片在线观看| 日韩一级黄色av| 日韩av三级在线观看| 国产亚洲在线播放|