`
elan1986
  • 浏览: 168737 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

python 生成 xml

阅读更多
  <?xml version="1.0" encoding="utf-8" ?> 
 <coverages>
 <coverage>
  <Type>total</Type> 
  <Name>0</Name> 
  <TotalLine>1</TotalLine> 
  <EffectiveLine>2</EffectiveLine> 
  <Covered>3</Covered> 
  <Cover>4</Cover> 
  </coverage>
  </coverages>


#coding:utf-8
import os
import codecs
import traceback
import xml.dom.minidom as minidom

def covert_to_unicode(msg):
	__re_str = None
	if isinstance(msg, unicode):
		__re_str = msg
	elif isinstance(msg, str):
		try:
			__re_str = msg.decode('gbk')
		except Exception, errinfo:
			raise Exception, '%s, %s' % (errinfo, str(msg))
	else:
		raise Exception, '%s 必须为str或unicode类型' % msg
	return __re_str

#print covert_to_unicode('哈哈')

class CreateCovXml():
	def __init__(self, cov_xml_path):
		self.cov_xml_path = cov_xml_path
		self.__dom = None
		self.__root = None
	
	def _covert_code(self, msg):
		return covert_to_unicode(msg)
	
	def __create_new_node(self, node_name, node_text=None):
		if self.__dom == None:
			raise Exception, '创建结点时,document对象还不存在'
		if None == node_text:
			return self.__dom.createElement(self._covert_code(node_name))
		else:
			newNode = self.__dom.createElement(self._covert_code(node_name))
			newText = self.__dom.createTextNode(self._covert_code(node_text))
			newNode.appendChild(newText)
			return newNode
	
	def begin_cov(self):
		try:
			impl = minidom.getDOMImplementation()
			self.__dom = impl.createDocument(None, u'coverages', None)
			self.__root = self.__dom.documentElement
		except:
			traceback.print_exc()
			raise Exception, '创建coverage xml根结点失败'
	def add_cov(self, type, name, total_line, effective_line, covered_line, cover_rate):
		if self.__root == None:
			raise Exception, '创建结点时,root结点不存在或对象不存在'
		
		type_node = self.__create_new_node('Type', type)
		name_node = self.__create_new_node('Name', name)
		total_line_node = self.__create_new_node('TotalLine', total_line)
		effective_line_node = self.__create_new_node('EffectiveLine', effective_line)
		covered_line_node = self.__create_new_node('Covered', covered_line)
		cover_rate_node = self.__create_new_node('Cover', cover_rate)
		
		new_coverage_node = self.__create_new_node('coverage')
		new_coverage_node.appendChild(type_node)
		new_coverage_node.appendChild(name_node)
		new_coverage_node.appendChild(total_line_node)
		new_coverage_node.appendChild(effective_line_node)
		new_coverage_node.appendChild(covered_line_node)
		new_coverage_node.appendChild(cover_rate_node)
		
		self.__root.appendChild(new_coverage_node)
	
	def end_cov(self):
		try:
			f = open(self.cov_xml_path, 'wb')
			writer = codecs.lookup('utf-8')[3](f)
			self.__dom.writexml(writer, encoding='utf-8')
			writer.close()
			f.close()
			return True
		except Exception, err:
			traceback.print_exc()
			raise Exception, '写xml文件出错'

if __name__ == '__main__':
	os.chdir("E:\\PyWk\\nodepad_py")
	test = CreateCovXml('cov.xml')
	test.begin_cov()
	test.add_cov(type="total", name='0', total_line='1', effective_line='2', covered_line='3', cover_rate='4')
	test.end_cov()
	print 'endl'		
分享到:
评论

相关推荐

    用python生成xml参数和SQL.zip

    这个名为"用python生成xml参数和SQL.zip"的压缩包文件似乎包含了一系列与使用Python来生成XML参数和SQL语句相关的代码。下面将详细讨论这些知识点。 1. **XML(可扩展标记语言)**: XML是一种用于存储和传输数据...

    python生成xml

    Python 生成 XML 是一个常见的需求,特别是在数据交换、配置文件创建或者存储结构化数据时。XML(可扩展标记语言)是一种用于标记数据的语言,它的结构清晰、可读性强,易于机器解析和生成。Python 提供了多种库来...

    python偷菜程序 python生成XML文件

    ### Python生成XML文件与字符编码理解 #### 一、Python生成XML文件 在现代Web开发中,XML(可扩展标记语言)是一种非常重要的数据交换格式。它被广泛应用于配置文件、数据传输等领域。使用Python来生成XML文件可以...

    使用Python生成XML的方法实例

    本文实例讲述了使用Python生成XML的方法。分享给大家供大家参考,具体如下: 1. bookstore.py #encoding:utf-8 ''' 根据一个给定的XML Schema,使用DOM树的形式从空白文件生成一个XML。 ''' from xml.dom.minidom ...

    python生成xml时规定dtd实例方法

    以上就是使用Python生成XML时规定DTD实例的方法。需要注意的是,在创建复杂的XML结构时,了解DTD的详细规则,以及如何正确地在Python代码中使用元素声明和属性声明,是非常重要的。通过实践操作,开发者可以更加熟练...

    使用python将xml转化为Excel

    由于生成excel,所以没必要让用户选择xml文件,默认对指定文件夹下的所有的XML文件进行转换,并把转换得到的Excel放在指定文件夹。 运行时可以双击.py文件(看不到具体log); 或者按住shift同时鼠标右键,选择在此处...

    python解析xml生成excel文档

    以上代码实现了从XML文件解析数据,并使用Python生成一个包含彩色效果的Excel文档。在实际应用中,你可以根据需求调整数据处理和样式设置部分,以满足特定的业务需求。例如,可以根据XML元素的属性或文本内容来决定...

    基于Python实现的自动化生成XML解析类

    5. **自动生成代码**:最后,这个自动化工具可能还会包含一个功能,用于自动生成上述过程中的Qt类和绑定代码,这样开发者只需要专注于XML结构,无需关心底层的解析逻辑。 通过这种方式,开发者可以更专注于业务逻辑...

    python文件对比 xml、excel

    对于XML文件,Python内置了`xml.etree.ElementTree`模块,它提供了解析和生成XML文档的功能。对于Excel文件,我们可以使用pandas库,它支持读写Excel文件,并且在处理表格数据时非常强大。 1. **读取XML文件**: ...

    Python如何生成xml文件

    在Python编程中,生成XML文件是一项常见的任务,用于存储结构化数据。XML(可扩展标记语言)是一种类似于HTML的语言,但其主要目的是传输和存储数据,而非显示数据。它的设计原则是具有自我描述性,因此使得数据易于...

    根据XML模版自动生成

    本话题主要关注如何根据XML模板自动生成XML文件,这通常涉及到数据库操作、数据处理以及XML文件的构建过程。下面我们将深入探讨这个主题。 首先,XML模板是一个预定义的结构,它包含了所需生成XML文件的基本框架,...

    python读取XML文件资料集合

    Python 中的 XML 工具可以帮助语法分析、处理和生成 XML。关于 XML,要记住一个总体概念:可以验证或非验证方式处理 XML 文档。 Python 中的 XML 工具可以分为两类:验证型和非验证型。验证型工具可以验证 XML 文档...

    芯片开发开源寄存器工具 使用python生成寄存器

    描述中提到的"使用Python生成寄存器",意味着Python被用作实现这个工具的主要编程语言。Python因其简洁的语法、丰富的库支持和跨平台性而被广泛采用。在生成寄存器相关的代码和文档时,Python的灵活性和强大的文本...

    XML_python_Amazon_

    然而,根据上下文,它可能包含用于生成或解析XML的代码,或者可能是用于与亚马逊API交互的示例。在Python环境中,如果需要使用Java代码,可以借助`subprocess`模块来调用Java虚拟机执行Java代码,或者使用`Jython`,...

    使用PYTHON创建XML文档

    例如,我就找不到中国人写的如何使用PYTHON来创建一个XML文件。当然,直接用文件写的方式也能够达到同样的效果,但是毕竟容易出错,而且看起来不优雅。最后,我看了很多资料,终于明白如何使用PYTHON写一个XML文件了...

    PYTHON深入学习 XML HTML

    Python的ElementTree库是处理XML的主要工具,它支持XML的解析、创建和序列化。 “Scripts 和 Streams”是指Python脚本和流处理。Python脚本可以直接运行,而流处理通常涉及读写网络或文件系统中的数据流。 ...

    XML-RPC.rar_python xml rpc_python写xml_xml rpc_xml-rpc python

    在这个"XML-RPC.rar"压缩包中,包含了一系列Python实现的XML-RPC相关文件,包括server.py、readfile.py、client.py和D_H.py,这些都是实现XML-RPC服务端和客户端功能的关键代码。 首先,我们来看`server.py`。这个...

Global site tag (gtag.js) - Google Analytics