XML模块

XML是实现不同语言或程序之间进行数据交换的协议,和json一样。

XML格式:

<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

读XML

简单读取XML内容:

import xml.etree.ElementTree as ET
tree = ET.parse('xml_test.xml')
root = tree.getroot()
print(root) #XML对象
print(root.tag) #XML最外层标签

遍历XML:

import xml.etree.ElementTree as ET
tree = ET.parse('xml_test.xml')
root = tree.getroot() for child in root:
print(child.tag,child.attrib) #to {'name': 'to'} 遍历标签、属性
for i in child:
print(i.tag,i.text) #content Jim 遍历标签、文本
break
break

只遍历某一个标签:

for node in root.iter('content'):
print(node.tag,node.text) #content Jim #content Jani #content Reminder #content Don't forget me this weekend!

修改XML

for node in root.iter('content'):
content = node.text #获取内容
new_content = str('new_content_'+content)
node.text = new_content #修改内容
node.set('update','yes') #添加属性 tree.write('xml_test.xml') #保存到原文件则覆盖之前内容,保存到新文件则新建

删除XML

for node in root.findall('to'): #找到to这个标签
content = len(node.find('content').text) #继续找到content的标签,并且计算content内容长度
if content > 2:
root.remove(node) #移除这个标签
tree.write('xml_test3.xml') # 将结果重新写到文件

创建XML

import xml.etree.ElementTree as ET
new_xml = ET.Element("name_list") #创建节点
personinfo = ET.SubElement(new_xml,"personinfo",attrib={"enrolled":"yes"}) #创建子节点、子节点名称、属性
age = ET.SubElement(personinfo,'age',attrib={"checked":"no"})
age.text = '33' #添加子节点文本内容
name = ET.SubElement(personinfo,"name")
name.text = 'jim' personinfo2 = ET.SubElement(new_xml,"personinfo",attrib={"enrolled":"no"})
age = ET.SubElement(personinfo2,'age')
age.text = '20'
name = ET.SubElement(personinfo2,'name')
name.text = 'Lily' et =ET.ElementTree(new_xml) #生成文档对象
et.write('xml_test5.xml',encoding='utf-8',xml_declaration=True) #生成xml文件并指定字符集和
ET.dump(new_xml) #打印生成格式

创建后的结果:

<?xml version='1.0' encoding='utf-8'?>
<name_list>
<personinfo enrolled="yes">
<age checked="no">33</age>
<name>jim</name>
</personinfo>
<personinfo enrolled="no">
<age>20</age>
<name>Lily</name>
</personinfo>
</name_list>

python模块详解 XML的更多相关文章

  1. python模块详解 | selenium(持续更新中)

    目录: 关于selenium Selenium 安装Selenium 安装浏览器驱动 配置环境变量 selenium方法详解 定位元素 元素操作 浏览器操作 鼠标事件 浏览器事件 设置元素等待 多表单 ...

  2. python模块详解 random os

    random模块 常用方法 random.random() 随机产生一个小于1的浮点数 import random print(random.random()) #0.4153761818276826 ...

  3. python模块详解

    什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的代码(.p ...

  4. python模块详解 sys shutil

    sys模块 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 sy ...

  5. python模块详解 | shutil

    简介: shutil是python的一个内置模块,提供了许多关于文件和文件集合的高级操作,特别提供文件夹与文件操作.归档操作了支持文件复制和删除的功能. 文件夹与文件操作: copyfileobj(f ...

  6. 小白的Python之路 day5 python模块详解及import本质

    一.定义 模块:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能) 本质就是.py结尾的python文件(文件名:test.py,对应的模块名:test) 包:用来从逻辑上组织模块 ...

  7. Python 模块详解及import本质

    同在当前目录下的模块和包导入 模块定义 本质就是.py结尾的python文件. 用来从逻辑上组织python代码(变量,函数,类,逻辑) 文件名: test.py;  对应的模块名 : test 模块 ...

  8. Python模块详解以及import本质,获得文件当前路径os.path.abspath,获得文件的父目录os.path.dirname,放到系统变量的第一位sys.path.insert(0,x)

    模块介绍 1.定义: 模块:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py结尾的python文件(文件名:test.py,对应的模块名:test) 包:用来从逻 ...

  9. python模块详解 logging

    打印日志的五个级别: import logging logging.debug('test debug') logging.info('test info') logging.warning('tes ...

随机推荐

  1. C++基础学习2:命名空间

    C++语言引入命名空间(Namespace)这一概念主要是为了避免命名冲突,其关键字为 namespace. 科技发展到如今,一个系统通常都不会仅由一个人来开发完成,不同的人开发同一个系统,不可避免地 ...

  2. 安装OFFICE2016错误代码0-1018(0)的解决方案 和激活方案

    一.安装OFFICE2016错误代码0-1018(0)的解决方案 下面方法亲测有效:Step 1. Go to C:\Program Files\Common Files\microsoft shar ...

  3. 最长子序列问题(二分+贪心nlogn算法)

    [题目描述] 给定N个数,求这N个数的最长上升子序列的长度. [样例输入] 7 2 5 3 4 1 7 6 [样例输出] 4 什么是最长上升子序列? 就是给你一个序列,请你在其中求出一段不断严格上升的 ...

  4. P2906 [USACO08OPEN]牛的街区Cow Neighborhoods

    传送门 曼哈顿距离好像不好直接算,我们可以把牛的坐标转化一下以方便计算距离 (x,y) --> (x+y,x-y) 那么距离就可以表示成 $max(\left |x_1-x_2  \right ...

  5. laravel 用户名登录

    laravel 用户名登录 默认登录设置为用户登录 laravel 5.3+ 修改文件(app\Http\Controllers\Auth\LoginController.php)增加 public ...

  6. Oracle SQL优化规则详解

    1. 选用适合的Oracle优化器 Oracle的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性) 设置缺省的优化器,可以通过对init.o ...

  7. django ORM 连表查询

    db_index=True  如果设置该字段就可以设置索引 auto_now_add  代表设置创建时候的时间 auto_now   每次更新数据记录时会更新该字段 to_field 设置要关联表的字 ...

  8. Python练习六十:网页分析,找出里面的正文与链接

    网页分析,找出里面的正文与链接 代码如下: from urllib import request from bs4 import BeautifulSoup request = request.url ...

  9. html-3

    <hr> 下划线实体:想在页面显示被浏览器解析的内容为表格添加标题<caption>跟tr同级,只在<table>下 <link> 为页面加小图标 在& ...

  10. python_元组 学习

    一.创建元组 代码: name=(‘chinese’,’gansu’,’beijing’) 创建空元组 name=() 元组中只包含一个元素时,需要在玄素后面加逗号(,)消除歧义: name=(‘ch ...