xml即可扩展标记语言,它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。从结构上,很像HTML超文本标记语言。但他们被设计的目的是不同的,超文本标记语言被设计用来显示数据,其焦点是数据的外观。它被设计用来传输和存储数据,其焦点是数据的内容。那么Python是如何处理XML语言文件的呢?下面一起来看看Python常用内置模块之xml模块吧。

本文主要学习的ElementTree是python的XML处理模块,它提供了一个轻量级的对象模型。在使用ElementTree模块时,需要import

xml.etree.ElementTree的操作。ElementTree表示整个XML节点树,而Element表示节点数中的一个单独的节点。

构建XML文件

ElementTree(tag),其中tag表示根节点,初始化一个ElementTree对象。

Element(tag, attrib={},

**extra)函数用来构造XML的一个根节点,其中tag表示根节点的名称,attrib是一个可选项,表示节点的属性。

SubElement(parent, tag, attrib={}, **extra)用来构造一个已经存在的节点的子节点

Element.text和SubElement.text表示element对象的额外的内容属性,Element.tag和Element.attrib分别表示element对象的标签和属性。

ElementTree.write(file, encoding='us-ascii', xml_declaration=None,

default_namespace=None, method='xml'),函数新建一个XML文件,并且将节点数数据写入XML文件中。

下面以新建一个网站的sitemap.xml文件为例进行代码示例。#!/usr/bin/env python

# coding:utf-8

from xml.etree import ElementTree as ET

def build_sitemap():

# 设置一个新节点,并设置其标签为urlset

urlset = ET.Element("urlset")

# 在urlset下新建两个子节点,设置其名称分别为sina和chinabyte

url = ET.SubElement(urlset, "url")

# 在url下新建四个子节点,设置其节点名称分别为loc、lastmod、changefreq、priority

loc = ET.SubElement(url, "loc")

loc.text = "https://www.noniu.com/"

lastmod = ET.SubElement(url, "lastmod")

lastmod.text = "2015-12-19"

changefreq = ET.SubElement(url, "changefreq")

changefreq.text = "daily"

priority = ET.SubElement(url, "priority")

priority.text = "1.0"

# 将节点数信息保存在ElementTree中,并且保存为XML格式文件

tree = ET.ElementTree(urlset)

tree.write("sitemap.xml")

if __name__ == '__main__':

build_sitemap()

结果如下图所示:

解析和修改XML文件

ElementTree.parse(source,

parser=None),将xml文件加载并返回ElementTree对象。parser是一个可选的参数,如果为空,则默认使用标准的XMLParser解析器。

ElementTree.getroot(),得到根节点。返回根节点的element对象。

Element.remove(tag),删除root下名称为tag的子节点

以下函数,ElementTree和Element的对象都包含。

find(match),得到第一个匹配match的子节点,match可以是一个标签名称或者是路径。返回个element

findtext(match,default=None),得到第一个配置的match的element的内容

findall(match),得到匹配match下的所有的子节点,match可以是一个标签或者是路径,它会返回一个list,包含匹配的elements的信息

iter(tag),创建一个以当前节点为根节点的iterator。

还是以上面创建的sitemap.xml为例,对其进行一定的修改,代码示例如下:#!/usr/bin/env python

# coding:utf-8

from xml.etree import ElementTree as ET

tree = ET.parse("sitemap.xml")

url = tree.find("url")

for rank in tree.iter('loc'):

rank.text = "https://www.noniu.com/jiaocheng/"

tree.write("sitemap.xml")

以上的代码将url修改为https://www.noniu.com/jiaocheng/了。另外,节点还有set(设置节点属性)、attrib(删除节点属性)方法。

python常用内置模块-Python常用内置模块之xml模块相关推荐

  1. Python之路(第十六篇)xml模块、datetime模块

    一.xml模块 xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单, xml比较早,早期许多软件都是用xml,至今很多传统公司如金融行业的很多系统的接口还主要 ...

  2. python常用内置模块-Python常用内置模块之xml模块(详解)

    xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言.从结构上,很像HTML超文本标记语言.但他们被设计的目的是不同的,超文本标记语言被设计用来显示 ...

  3. python常用内置模块-python 常用内置模块使用

    python模块分类:1,标准库2,开源模块3,自定义模块 python 常用内置模块使用 1,time与datetime获取时间戳: time.time() 时间元组: time.localtime ...

  4. Python(十三)- 常用内置模块与第三方库

    python具有庞大的用户群,因其语法简洁,开发效率高而备受欢迎,同样,它的标准库与第三方库的支持也比较完善. 这里做些简单的整理. 常用内置模块与第三方库 一般存放于Python安装目录下的 lib ...

  5. python中xml模块_python常用模块之xml模块

    使用xml模块需先引入模块名: #! /usr/bin/env python # -*- coding:utf-8 -*- import xml.etree.ElementTree as ET #ET ...

  6. python基础知识8——常见内置模块

    Python之路-python(常用模块学习) 模块介绍 time &datetime模块 random os sys shutil shelve xml处理 yaml处理 configpar ...

  7. python模块下载过程_常用的python模块及安装方法

    bsddb3:BerkeleyDB的连接组件 Cheetah-1.0:我比较喜欢这个版本的cheetah cherrypy:一个WEB framework ctypes:用来调用动态链接库 DBUti ...

  8. 常用的python模块及安装方法

    adodb:我们领导推荐的数据库连接组件 bsddb3:BerkeleyDB的连接组件 Cheetah-1.0:我比较喜欢这个版本的cheetah cherrypy:一个WEB framework c ...

  9. Python之几种常用模块

    模块 注意事项: 所有的模块导入都应该尽量往上写内置模块扩展模块自定义模块 模块不会重复被导入 : sys.moudles 从哪儿导入模块 : sys.path import import 模块名模块 ...

最新文章

  1. LVS的NAT工作模型详解
  2. Android中使用GridView实现标签效果源码
  3. WPF特效-拼图游戏
  4. SQL SERVER2000中订阅与发布的具体操作
  5. Tomcat(Windows)
  6. mysql查询重复数据
  7. 关于微信小程序下拉出现三个小点
  8. [ES6] 细化ES6之 -- 块级作用域
  9. python中darks_YOLOv4: Darknet 如何于 Ubuntu 编译,及使用 Python 接口
  10. ofo在MaxCompute的大数据开发之路
  11. mac电脑如何配置mysql环境变量
  12. RAID 磁盘阵列详解,RAID分类及优缺点
  13. python哥德巴赫猜想_Python验证哥德巴赫猜想
  14. winrar打开导航已取消是什么原因
  15. 动漫设计系统(基于ASP.NET的动态网站)
  16. wps怎么把xlsx转成html,怎样把wps转换成excel
  17. html实现跳跳棋游戏,原生JS实现的跳一跳小游戏完整实例
  18. 用python使用py2neo时候报“ModuleNotFoundError:No module named 'py2neo'”的错误
  19. 【踩坑】Win11 WSL2 中 meld 无法正常使用问题修复
  20. 青龙面板搭建及记录踩过的坑

热门文章

  1. mysql检查备份数据脚本并在zabbix上告警
  2. Linux-Learning
  3. 10.基于Tomcat的SmartUplaod文件上传
  4. 关于Java HotSpot(TM) 64-Bit Server VM warning: Insufficient space for shared memory file: 11043的解决办...
  5. 【习题4-1 Uva1589】Xiangqi
  6. Struts2 数据标签
  7. ZCMU 1894: Power Eggs
  8. js04--对象与正则表达式
  9. u-boot-1.1.6 设置新分区支持设备树
  10. 测试开发面试集锦-测试方面(搬运)