python比较2个xml内容
来源:互联网 发布:读书郎软件下载 编辑:程序博客网 时间:2024/04/30 07:54
from xml.etree import ElementTreeOK=Truemain_pid = 10000loop_depth = 0def compare_xml(left, right, key_info='.'): global loop_depth loop_depth += 1 if loop_depth == 1: print if left.tag != right.tag: print_diff(main_pid, key_info, 'difftag', left.tag, right.tag) return if left.text != right.text: print_diff(main_pid, key_info, 'difftext', left.text, right.text) return leftitems = dict(left.items()) rightitems = dict(right.items()) for k,v in leftitems.items(): if k not in rightitems: s = '%s/%s' % (key_info, left.tag) print_diff(main_pid, s, 'lostattr', k, "") for k,v in rightitems.items(): if k not in leftitems: s = '%s/%s' % (key_info, right.tag) print_diff(main_pid, s, 'extraattr', "", k) leftnodes = left.getchildren() rightnodes = right.getchildren() leftlen = len(leftnodes) rightlen = len(rightnodes) if leftlen != rightlen: s = '%s/%s' % (key_info, right.tag) print_diff(main_pid, s, 'difflen', leftlen, rightlen) return l = leftlen<rightlen and leftlen or rightlen d = {} for i in xrange(l): node=leftnodes[i] if node.tag not in d: d[node.tag] = 1 tag = node.tag else: tag = node.tag + str(d[node.tag]) d[node.tag] += 1 s = '%s/%s' % (key_info, tag) compare_xml(leftnodes[i], rightnodes[i], s)def print_diff(main_pid, key_info, msg, base_type, test_type): global OK info = u'[ %-5s ] %s -> %-40s [ %s != %s ]'%(msg.upper(), main_pid, key_info.strip('./'), base_type, test_type) print info.encode('gbk') OK = False
调用:
if __name__ == '__main__': s1 = '''<?xml version="1.0" encoding="UTF-8"?> \ <employees> \ <employee id = '1'> \<name>linux</name>\<age>30</age>\ </employee>\ <employee id = '2'> \<name>windows</name>\<age>20</age>\ </employee>\ </employees>''' s2 = '''<?xml version="1.0" encoding="UTF-8"?> \ <employees> \ <employee id = '3'> \<name>windows</name>\<age>20</age>\ </employee>\ <employee id = '4'> \<name>linux</name>\<age>30</age>\ </employee>\ </employees>''' lroot = ElementTree.fromstring(s1) rroot = ElementTree.fromstring(s2) compare_xml(lroot, rroot)
0 0
- python比较2个xml内容
- 比较2个xml文件
- Uedit32比较2个文件的内容
- Oracle比较2个表内容
- Java中比较2个数组内容
- 2个文件内容的比较
- python,比较两个xml
- python对比2个文件内容
- Python比较2个时间的大小
- 比较2个DataTable中的内容是否相同的方法
- linux命令:怎么样比较2个文件的内容,然后将内容一致的行输出
- 二个txt文件内容比较
- Python 实现比较文件内容异同
- Python对xml进行内容筛选
- python学习:使用xml.dom.minidom读取xml文档内容
- python 中的数值比较可以多个一起比较
- Python脚本比较网络数据包内容,获取相同部分
- PHP获取多个XML文件的内容
- java中的char
- 从官网下载STM32固件函数库
- Linux 多核下绑定硬件中断到不同 CPU(IRQ Affinity)
- 产品经理的主要工作职责
- HDU 3988 Harry Potter and the Hide Story(数论-整数和素数)
- python比较2个xml内容
- 2013计算机视觉代码合集(一、二)
- vs2012 安装后 出现的一种问题 关于 .net framework
- C 使用异或(xor)加密/解密文件
- javascript 提取身份证的生日和性别
- Remove Duplicates from Sorted Array
- robotium自动化测试简介
- 区分shapefile,coverage,geodatabase
- Quartz入门实例2-根据SimpleScheduleBuilder配置不同的SimpleTrigger触发器