python比较两个xml_python比较2个xml内容的方法
python比较2个xml内容的方法
发布于 2015-10-04 17:26:38 | 145 次阅读 | 评论: 0 | 来源: 网友投递
Python编程语言Python 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。
这篇文章主要介绍了python比较2个xml内容的方法,涉及Python操作XML文件的相关技巧,需要的朋友可以参考下
本文实例讲述了python比较2个xml内容的方法。分享给大家供大家参考。具体分析如下:
from xml.etree import ElementTree
OK=True
main_pid = 10000
loop_depth = 0
def 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
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"?>
linux
30
windows
20
'''
s2 = '''''<?xml version="1.0" encoding="UTF-8"?>
windows
20
linux
30
'''
lroot = ElementTree.fromstring(s1)
rroot = ElementTree.fromstring(s2)
compare_xml(lroot, rroot)
相关阅读:
python比较2个xml内容的方法
python比较两个列表大小的方法
详解在Python程序中解析并修改XML内容的方法
python使用htmllib分析网页内容的方法
python使用nntp读取新闻组内容的方法
Python批量修改文本文件内容的方法
浅谈Python实现2种文件复制的方法
Python比较两个图片相似度的方法
python比较两个列表是否相等的方法
python逐行读取文件内容的三种方法
python通过urllib2获取带有中文参数url内容的方法
在Python中使用CasperJS获取JS渲染生成的HTML内容的方法
python比较两个xml_python比较2个xml内容的方法相关推荐
- python列表去重函数_对python中两种列表元素去重函数性能的比较方法
测试函数: 第一种:list的set函数 第二种:{}.fromkeys().keys() 测试代码: #!/usr/bin/python #-*- coding:utf-8 -*- import t ...
- python输出文本框_python TKinter获取文本框内容的方法
python TKinter获取文本框内容的方法 如下所示: #coding:utf-8 import urllib,urllib2 import Tkinter #导入TKinter模块 ytm=T ...
- python 法律检索_Python基于正则表达式实现检查文件内容的方法【文件检索】
本文实例讲述了Python基于正则表达式实现检查文件内容的方法分享给大家供大家参考,具体如下: 这个是之前就在学python,欣赏python的小巧但是功能强大,是连电池都自带的语言.平时工作中用Ja ...
- python求两数最大公因数_Python求两个数的最大公约数
Python求两个数的最大公约数 一.求最大公约数算法: 1. 整数A对整数B进行取整, 余数用整数C来表示 举例: C = A % B 2. 如果C等于0,则C就是整数A和整数B的最大公约数 3. ...
- Python中将两个列表数据zip起来并遍历(Iterating through two lists in parallel)
Python中将两个列表数据zip起来并遍历(Iterating through two lists in parallel) 目录 Python中将两个列表数据zip起来并遍历(Iterating ...
- Python中将两个列表(list)数据zip起来
Python中将两个列表(list)数据zip起来 目录 Python中将两个列表(list)数据zip起来
- Python计算两个numpy数组的交集(Intersection)实战:两个输入数组的交集并排序、获取交集元素及其索引、如果输入数组不是一维的,它们将被展平(flatten),然后计算交集
Python计算两个numpy数组的交集(Intersection)实战:两个输入数组的交集并排序.获取交集元素及其索引.如果输入数组不是一维的,它们将被展平(flatten),然后计算交集 目录
- Python判断两个文件夹中互相不同的文件有哪些、判断一个文件夹相对于另外一个文件夹缺少了哪些文件
Python判断两个文件夹中互相不同的文件有哪些.判断一个文件夹相对于另外一个文件夹缺少了哪些文件 目录 Python判断两个文件夹中互相不同的文件有哪些.判断一个文件夹相对于另外一个文件夹缺少了哪些 ...
- Python将两个图像合并成一个图像(横向合并)
Python将两个图像合并成一个图像(横向合并) 目录 Python将两个图像合并成一个图像(横向合并) #原始图像
最新文章
- STL 队列queue
- SAP MM 不常用事务代码之MB59
- python中使用函数编程的意义_总结Python编程中函数的使用要点
- mysql里面的sql_mysql工作中的sql
- docker-machine
- 全面拥抱HDR时机已到?
- ajax实现浏览器前进后退-location.hash与模拟iframe
- GPUimage 遇到的崩溃及问题
- 071120 sunny
- 通过函数指针实现四则运算
- vuex模块化配合vue-router全局路由守卫做登陆权限控制
- 可视化编辑json数据——json editor
- 【python做简单的数据分析、绘图】
- 导数的四则运算法则_【数学】求导的方法之四则运算法则
- wps 2003 给WPS设置保护眼睛的淡绿色呢?
- leetcode954.二倍数对数组C++(绝对值排序)
- proto—go语言生成代码参考(Generated-code reference中文翻译)
- 数学建模:回归分析——regress 函数
- 40个笑到抽筋的神回复,绝了!
- 调焦距离S远近与景深之关系
热门文章
- mysql 2014_mysql错误之2014
- Drug Target Review | 超越表型:基于AI更好地了解疾病
- OpenCV | ORB特征检测与描述
- linux 登录 忘记密码,redhat linux忘记登陆密码之解决办法
- python源文件保存在哪里_python数据爬下来保存在哪里
- 在线作图丨数据降维方法⑥——消除趋势对应分析(Detrended correspondence analysis, DCA)
- 在线作图丨高级的微生物分析——在线做Variance Partitioning Analysis(VPA分析)
- 专属于教育界的定律,你知道哪一些?
- 今年1篇Science,2篇NBT,2篇MP,1篇PNAS等11篇文章,遗传发育所白洋组在植物微生物组取得系列进展!
- 最前沿的科学, 寻找最聪明的你—“宏基因组”公众号编辑招募