xml模块
定义:实现不同语言或程序之间进行数据交换的协议。
格式如下:通过<>节点来区别数据结构
如:<load-on-startup(这个是标签) test="value"(这个是属性)>5(这个是文本)</load-on-startup>
root.tag:打印标签
root.attrib:打印属性
root.text:打印文本
举例:
自定义一个stud.xml文件
首先打印各级信息
import xml.etree.ElementTree as et
tree = et.parse('stud.xml') #文件名
root = tree.getroot() #提取根节点
print(root.tag) #打印根标签
1.#遍历xml文档
for child in root:
print(child.tag,child.attrib,child.text) #打印二级节点标签
for i in child:
print(i.tag,i.attrib,i.text) #打印三级节点标签
2:#查找param-name节点
for node in root.iter('param-name'):
print(node.tag,node.attrib,node.text)
#打印:load-on-startup {} 4
3:# 修改使load-on-startup 值加1
for node in root.iter('load-on-startup'): #遍历
new = int(node.text)+1 #匹配load-on-startup值4加1
node.text = str(new) #将新值5替换源值4
node.set('test','value') #为load-on-startup增加属性(test="value")
tree.write('stud.xml') #将修改保存回xml文件
4: 删除操作
for country in root.findall('country'):
rank = int(country.find('rank').text)
if rank > 50:
root.remove(country)
tree.write('out.xml')
4:#创建xml文件
import xml.etree.ElementTree as et
#创建根节点
rootlist = et.Element('tech')
#创建二级节点
tech = et.SubElement(rootlist,'tech_node',attrib={'name':'tech_center'})
#创建三级节点
dev = et.SubElement(tech,'dev_node',attrib={'name':'dev_center'})
#写内容
dev.text = 'java'
dev.text = 'python'
test = et.SubElement(tech,'test_node',attrib={'name':'test_center'})
test.text = 'program'
#创建二级节点
finance = et.SubElement(rootlist,'finance_node',attrib={'name':'finance_center'})
#创建三级节点
account = et.SubElement(finance,'account_node',attrib={'name':'account_center'})
account.text = 'woman'
#生成文档对象
obj = et.ElementTree(rootlist)
# 写文件,xml_declaration就是自动在xml文件头加声明
obj.write('stud3.xml',encoding='utf-8',xml_declaration=True)
#可选的屏幕打印
et.dump(rootlist)

python学习之 - XML的更多相关文章

  1. Python学习笔记--XML的应用

    XML的定义 XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输数据,而非显示数据 XML 标签没有被 ...

  2. [python 学习] 使用 xml.etree.ElementTree 模块处理 XML

    ---恢复内容开始--- 导入数据(读文件和读字符串) 本地文件 country_data.xml <?xml version="1.0"?> <data> ...

  3. python学习-52 XML模块

    XML模块 xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但是json使用起来更简单. 例如:创建一个xml文件 <data> <country name=&q ...

  4. 用 ElementTree 在 Python 中解析 XML

    用 ElementTree 在 Python 中解析 XML 原文: http://eli.thegreenplace.net/2012/03/15/processing-xml-in-python- ...

  5. Python学习资料下载地址(转)

    [转]Python学习资料和教程pdf 开发工具: Python语言集成开发环境 Wingware WingIDE Professional v3.2.12 Python语言集成开发环境 Wingwa ...

  6. PYTHON学习之路_PYTHON基础(6)

    学习内容: Python模块介绍 1.time &datetime模块 2.random 3.shutil 4.shelve 5.xml处理 6.configparser 7.hashlib ...

  7. Python学习资料整理以及书籍、开发工具推荐

    我不知道大家学习Python的时候是不是和我一样感觉很无助,不知道在入门或者进阶的时候应该掌握哪些知识点,下面我就梳理下我自己学习Python开 发的过程及资料分享给大家,这些方法资料可能并不适合所有 ...

  8. [转]Python学习资料和教程pdf

    开发工具: Python语言集成开发环境 Wingware WingIDE Professional v3.2.12 Python语言集成开发环境 Wingware WingIDE Professio ...

  9. Python学习笔记基础篇——总览

    Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列 ...

随机推荐

  1. JAVA解析XML的几种方法

    DOM DOM Document Object Model 文档对象模型.在应用程序中,基于DOM的解析器将一个XML文档转换成一个对象模型的集合(DOM树),应用程序正是通过对这个对象模型的操作,来 ...

  2. 在CentOS上把Git从1.7.1升级到1.7.12.4

    在CentOS上把Git从1.7.1升级到1.7.12.4 摘要:本文记录了在CentOS 6.3上,把Git从1.7.1升级到1.7.12.4的过程. 1. 概述 在我做的一个项目中,最近我对生产服 ...

  3. c# 从DataGridVieew导出到excel

    public static bool DataGridViewToExcel(DataGridView dataGridView, bool isShowExcel) { int rowsQty = ...

  4. UVA 11346 Probability 概率 (连续概率)

    题意:给出a和b,表示在直角坐标系上的x=[-a,a] 和 y=[-b,b]的这样一块矩形区域.给出一个数s,问在矩形内随机选择一个点p=(x,y),则(0.0)和p点组成的矩形面积大于s的概率是多少 ...

  5. codevs 2905 足球晋级

    时间限制: 1 s  空间限制: 64000 KB  题目等级 : 黄金 Gold   题目描述 Description A市举行了一场足球比赛 一共有4n支队伍参加,分成n个小组(每小组4支队伍)进 ...

  6. LC.exe 已退出,代码为-1 问题解决

    最近一个c#工程,之前编译正常.后重装系统,安装DevExpress后,编译一直失败,并提示"4>C:\Windows\Microsoft.NET\Framework\v4.0.303 ...

  7. python实现: protobuf解释器

    之前项目为了自动化,所以写一个protobuf的解释器,用来生成项目所需的格式. 当然现在通过以下链接的指导,跳过手工分析,直接生成代码了. https://developers.google.com ...

  8. MySQL-03 SQL语句设计

    学习要点 SQL语句分类 DML语句 DML 查询语句 SQL语句分类 数据操纵语言(DML):用来操纵数据库中数据的命令.包括:SELECT.INSERT.UPDATE.DELETE. 数据定义语言 ...

  9. upupoo(网页壁纸)自主修改一:农历

    最近在使用一款upupoo的壁纸软件,感觉还可以,主要是对其中html可设置为壁纸方面情有独钟 前几天在它的网页区发现了一个壁纸,感觉挺好: 感觉内容有点少,今天在工作空余时间就在其中加上了农历,同时 ...

  10. VS C++项目报错warning C4199: ……use /Zc:twoPhase-

    具体的报错如下: c1xx : warning C4199: two-phase name lookup is not supported for C++/CLI, C++/CX, or OpenMP ...