test.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import xml.etree.ElementTree as ET
  2. """
  3. ElementTree.write() 將構建的XML文檔寫入(更新)文件。
  4. Element.set(key, value) 添加和修改屬性
  5. Element.text = '' 直接改變字段內容
  6. Element.remove(Element) 刪除Element節點
  7. Element.append(Element) 為當前的Elment對象添加子對象
  8. ET.SubElement(Element,tag)創建子節點
  9. """
  10. # 增加自動縮進換行
  11. def indent(elem, level=0):
  12. i = "\n" + level*" "
  13. if len(elem):
  14. if not elem.text or not elem.text.strip():
  15. elem.text = i + " "
  16. if not elem.tail or not elem.tail.strip():
  17. elem.tail = i
  18. for elem in elem:
  19. indent(elem, level+1)
  20. if not elem.tail or not elem.tail.strip():
  21. elem.tail = i
  22. else:
  23. if level and (not elem.tail or not elem.tail.strip()):
  24. elem.tail = i
  25. #------------新增XML----------
  26. #創建根節點
  27. a = ET.Element("student")
  28. #創建子節點,並添加屬性
  29. b = ET.SubElement(a,"name")
  30. b.attrib = {"NO.":"001"}
  31. #添加數據
  32. b.text = "張三"
  33. #創建elementtree對象,寫文件
  34. indent(a,0)
  35. tree = ET.ElementTree(a)
  36. tree.write("writeXml.xml",encoding="utf-8")
  37. #----------編輯XML--------
  38. # 讀取待修改文件
  39. updateTree = ET.parse("writeXml.xml")
  40. root = updateTree.getroot()
  41. # --新增--
  42. # 創建新節點並添加為root的子節點
  43. newnode = ET.Element("name")
  44. newnode.attrib = {"NO.":"003"}
  45. newnode.text = "張三水"
  46. root.append(newnode)
  47. #---修改---
  48. #----刪除---
  49. # 寫回原文件
  50. indent(root,0)
  51. updateTree.write("writeXml.xml",encoding="utf-8", xml_declaration=True)