python xml.etree ElementTree解析 编辑 xml

 

python有很多种xml解析方式,不过感觉etree的ElementTree 用起来最方便。

 1 #coding=utf-8
 2 from xml.etree import ElementTree
 3 
 4 import pdb
 5 
 6 def printNodeInfo(node):
 7 
 8     #node.tag 标签名称
 9     #node.text 文本属性
10     print node.tag: %s %node.tag
11 
12     #node.attrib 属性字典
13     for key in node.attrib:
14         print %s %s %(key,node.attrib[key])
15     return None
16 
17 def main():
18 
19     pdb.set_trace()
20     try:
21         #ElementTree.parse(source,parser=None)
22         #将xml文件加载并返回ElementTree 对象
23         #parser 是一个可选的参数,如果为空则使用标准的XMLParser
24         #step 1: 获取 ElementTree 对象
25         xmlDoc = ElementTree.parse(D:\server\map\App.xml)
26         #step 2: 获取 根节点
27         root = xmlDoc.getroot()
28         #root.getchildren() 获取节点 返回的是列表
29         gateServerNodeList = root.getchildren()
30 
31         # 下面是在每个gateServer 节点下 增加一个子节点
32         for node in gateServerNodeList:
33             # ElementTree.SubElement(parentNode,tagName)
34             #给parentNode 增加一个子节点
35             #和parentNode.append(Element) 效果一致
36             newNode = ElementTree.SubElement(node,ActiveType)
37             # 设置属性 
38             newNode.attrib[id] = 9
39             newNode.attrib[level] = 38
40             newNode.attrib[begin] = 201401010000
41             newNode.attrib[end] = 201401010000
42             #中文 需要 特殊译码
43             newNode.attrib[tip] = 测试.decode(utf-8)
44             #节点尾部的符号
45             newNode.tail = \n
46             #node.append(newNode)
47 
48         # 写入文件 调用 之前的ElementTree 对象的
49         #write(fileName,encoding = None,xml_Decleare = None,default_namespace = None,method = None)
50         # 其中xml_Decleare 如果为 True 则 在 文档的最上方会写入
51         #<?xml version="1.0" encoding="utf-8"?>
52         xmlDoc.write(D:test.xml,utf-8,True)
53     except Exception as e:
54         print e
55         
56     return None
57 
58 if __name__ == __main__:
59     main()

python xml.etree ElementTree解析 编辑 xml,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。