【python小练】0017-将xls文件内容写入xml文件中

第 0017 题: 将 第 0014 题中的 student.xls 文件中的内容写到 student.xml 文件中,如

下所示:

<?xml version="1.0" encoding="UTF-8"?>
<root>
<students>
<!--
    学生信息表
    "id" : [名字, 数学, 语文, 英文]
-->
{
    "1" : ["张三", 150, 120, 100],
    "2" : ["李四", 90, 99, 95],
    "3" : ["王五", 60, 66, 68]
}
</students>
</root>

这里就要用上xml这个module啦,我打算用xml.etree来做

Code:

import xlrd
import xml.dom.minidom as md

def get_xls_data(filename):
     book = xlrd.open_workbook(filename)
     sheet = book.sheet_by_index(0)
     content = {}
     for i in range(sheet.nrows):
         content[i+1] = sheet.row_values(i)[1:]
     return content

def write_to_xml(xlscontent):

    xmlfile = md.Document()  #创建新xml文件

    root = xmlfile.createElement(‘root‘)  #创建节点
    students = xmlfile.createElement(‘students‘)  #创建节点

    xmlfile.appendChild(root)  #在文件中添加root节点
    root.appendChild(students)  #在root下添加students节点

    comment = xmlfile.createComment(‘学生信息表 "id" : [名字, 数学, 语文, 英文]‘)  #创建评论
    students.appendChild(comment)  #在students标签下添加comment

    xmlcontent = xmlfile.createTextNode(str(xlscontent))    #创建文本节点
    students.appendChild(xmlcontent)  在students标签下添加文本内容

    with open(‘students.xml‘, ‘wb‘) as f:
        f.write(xmlfile.toprettyxml(encoding = ‘utf-8‘))  #写入文件

write_to_xml(get_xls_data(‘students.xls‘))

Note:

1. get_xls_data(filename)函数从xls中读出内容

2. xml的相关操作并不难,見代码后注释

3. 注意通过get_xls_data()得到的content是dict,而createTextNode()方法要求创建内容对为str,用type(变量名)查看变量类型

获得的xml文件内容如下:

<?xml version="1.0" encoding="utf-8"?>
<root>
    <students>
        <!--学生信息表 "id" : [名字, 数学, 语文, 英文]-->
        {1: [‘张三‘, ‘150‘, ‘120‘, ‘100‘], 2: [‘李四‘, ‘90‘, ‘99‘, ‘95‘], 3: [‘王五‘, ‘60‘, ‘66‘, ‘68‘]}
    </students>
</root>

排成一行了,不知道能不能人为分行,不过对内容没影响

时间: 2024-10-25 16:08:40

【python小练】0017-将xls文件内容写入xml文件中的相关文章

用C#Winform写个简单的批量清空文件内容和删除文件的小工具

用C#Winform写个简单的批量清空文件内容和删除文件的小工具 本文介绍这个简单得不能再简单的小项目.做这个项目,有以下目的. 1 当然是做个能用的工具 2 学习使用Github 关于用VS2013创建一个项目并添加到Github的教程,请参考(http://www.admin10000.com/document/4004.html).简单来说,就是先用VS创建项目:然后在Github网站上创建一个Respo(本项目的代码托管项目),记下(https://*.git)那个地址:最后用"提交&q

linux中合并多个文件内容到一个文件的例子

尊敬的用户您好,从即日起 导入 及 导出 功能已经下线,请到阿里云官方数据库管理平台 iDB Cloud 使用该功能! 继续在 iDB Cloud 中发现导出的数据库文件是按照每个表生成的SQL文件,这么多单独的文件再导入到其他数据库中是个麻烦事,需要将所有的SQL文件合并为一个完整的SQL文件.有了这个思路,决定寻找方法来实现. Windows 中实现合并多个文件内容到一个文件中 代码如下 复制代码 (www.111cn.net)copy *.sql MERGE.sql Linux 或 类Un

【文件处理】xml 文件 SAX解析

SAX的全称是Simple APIs for XML,也即XML简单应用程序接口. 与DOM不同,SAX提供的访问模式是一种顺序模式,这是一种快速读写XML数据的方式. 当使用SAX分析器对XML文档进行分析时,会触发一系列事件,并激活相应的事件处理函数,应用程序通过这些事件处理函数实现对XML文档的访问,因而SAX接口也被称作事件驱动接口. 局限性: 1. SAX分析器在对XML文档进行分析时,触发了一系列的事件,由于事件触发本身是有时序性的,因此,SAX提供的是一种顺序访问机制,对于已经分析

c#程序将excel文件转换成xml文件

要程序你自己去组装去,我只写两个部分,一个是读Excel的部分,然后是写入到xml的1) 从指定的excel读出信息string strConn="provider=Microsoft.Jet.OLEDB.4.0;data source=你的Excel文件.xls;Extended Properties=Excel 8.0;";DataSet ds=new DataSet();System.Data.OleDb.OleDbConnection oleConn=new System.Da

C++ 利用 libxl 将 Excel 文件转化为 Xml 文件

在游戏开发工作中,策划和运营一般会用Excel来编写配置文件,但是程序读取配置,最方便的还是xml文件.所以最好约定一个格式,然后在二者之间做一个转化. 本文利用libxl来读取Excel文件,利用 timyxml2 来写入xml文件 libxl3.65破解版 : http://pan.baidu.com/s/1boYaeRl  提取码:3xbe tinyxml2 源码: https://github.com/leethomason/tinyxml2 #include <stdio.h> #i

C#读取和写入XML文件

关于xml是属于一个比较重要的东西,在平时开发的过程中,这块内容最主要的是要掌握XML内容的读取和写入操作. 一.什么是XML? XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似HTML XML 的设计宗旨是传输数据,而非显示数据 XML 标签没有被预定义,您需要自行定义标签 XML 被设计为具有自我描述性 XML 是W3C 的推荐标准 二.XML语法: 1.一个XML包含以下几部分内容: 文档声明,元素,属性,注释,CDATA(特

02_Android写xml文件和读xml文件

?? 新建Android项目 编写AndroidManifest.xml,使本Android项目具有单元测试功能和写外设的权限. <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.itheima28.xmldemo" a

Java之Pull方式生成xml文件和解析xml文件

Pull XML解析器早已经被google集成到android sdk当中,它是google官方推荐的解析器. 如果我们要在Java桌面.J2ME等当中使用Pull方式生成xml文件和解析xml文件,需要用到kxml2: KXML解析器是基于普通XML PULL解析器的一个小巧的解析器,官网是http://kxml.org/ 普通XML PULL解析器的官网是http://xmlpull.org/ 实验开始: 在Eclipse中新建一个java项目,其中新建一个libs文件夹,拷贝从网上下载的k

使用Pull解析器生成XML文件和读取xml文件

有些时候,我们需要生成一个XML文件,生成XML文件的方法有很多,如:可以只使用一个StringBuilder组拼XML内容,然后把内容写入到文件中:或者使用DOM API生成XML文件,或者也可以使用pull解析器生成XML文件,这里推荐大家使用Pull解析器. 一.布局界面 [html] view plaincopyprint? <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"