Python xml文件处理
什么是XML文件?
xml即可扩展标记语言,它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。
从结构上,很像HTML超文本标记语言。但他们被设计的目的是不同的,具体如下:
- XML 被设计用来传输和存储数据
- HTML 被设计用来显示数据
创建xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<Class>
<student>
<name>Nancy</name>
<age>23</age>
<city>Chengdu</city>
</student> <student>
<name>Anne</name>
<age>24</age>
<city>Chongqing</city>
</student> <student>
<name>Hugh</name>
<age>25</age>
<city>Beijing</city>
</student> <teacher>
<name>Bob</name>
<age>27</age>
<city>Shanghai</city>
</teacher> <account>
<login username="student" password="123456"/>
<login username="teacher" password="888888"/>
</account>
</Class>
XML节点
xml文件节点一般包含3类:
- 元素节点
- 文本节点
- 属性节点
每个节点都拥有包含着关于节点某些信息的属性。这些属性是:
- nodeName(节点名称)
- nodeValue(节点值)
- nodeType(节点类型)
读取元素节点
案例:查看Class_info.xml文件里Class节点的属性(结点名称,节点的值、节点类型)
from xml.dom import minidom
#加载xml文件
dom=minidom.parse('Class_info.xml')
#加载dom对象元素
root=dom.documentElement
#打印节点信息
print(root.nodeName) #获取节点名称
print(root.nodeValue) #获取节点值
print(root.nodeType) #获取节点类型,元素节点返回1,属性节点返回2
运行结果:
Class
None
1
读取文本节点的值
案例:分别打印出Class_info.xml里的学生和老师的详细信息(姓名,年龄、城市)
from xml.dom import minidom
#打开文件
dom=minidom.parse('Class_info.xml')
#获取文档对象元素
root=dom.documentElement
#根据标签名称获取标签对象
names=root.getElementsByTagName('name')
ages=root.getElementsByTagName('age')
citys=root.getElementsByTagName('city')
#分别打印显示xml文档标签对里面的内容
for i in range(4):
print(names[i].firstChild.data)
print(ages[i].firstChild.data)
print(citys[i].firstChild.data)
运行结果:
Nancy
23
Chengdu
Anne
24
Chongqing
Hugh
25
Beijing
Bob
27
Shanghai
读取属性节点的值
案例:分别读取打印老师和学生的账号密码。
from xml.dom import minidom
dom=minidom.parse('Class_info.xml')
root=dom.documentElement
logins=root.getElementsByTagName('login')
#获取login标签的username属性
for i in range(2):
username=logins[i].getAttribute('username')
password=logins[i].getAttribute('password')
print(username)
print(password)
运行结果:
student
123456
teacher
888888
读取子节点信息
案列:读取子节点<student>相关属性
from xml.dom import minidom
dom=minidom.parse('Class_info.xml')
root=dom.documentElement
tags=root.getElementsByTagName('student')
print(tags[0].nodeName)
print(tags[0].nodeType)
print(tags[0].nodeValue)
运行结果:
student
1
None
Python xml文件处理的更多相关文章
- python - XML文件及其操作
xml文件也是实现不同语言或者程序之间进行数据交换的协议,它的特点是尖括号开头,尖括号结尾.使用范围就更为广泛了,tomcat resin kvm 等等,使用了大量的xml文件来进行相关配置.先来看一 ...
- python XML文件解析:用xml.dom.minidom来解析xml文件
python解析XML常见的有三种方法: 一是xml.dom.*模块,是W3C DOM API的实现,若需要处理DOM API则该模块很合适, 二是xml.sax.*模块,它是SAX API的实现,这 ...
- python xml文件解析 及生成xml文件
#解析一个database的xml文件 """ <databaselist type="database config"> <dat ...
- python XML文件解析:用ElementTree解析XML
Python标准库中,提供了ET的两种实现.一个是纯Python实现的xml.etree.ElementTree,另一个是速度更快的C语言实现xml.etree.cElementTree.请记住始终使 ...
- python xml文件解析
参考链接:http://www.runoob.com/python/python-xml.html
- python处理xml文件
参考:https://docs.python.org/2/library/xml.etree.elementtree.html 例子: <?xml version="1.0" ...
- python 生成 xml文件 属性的顺序问题
需求很奇葩. 文档示例 <ITEM key="username" eng="User Name" chn="用户名" val=&quo ...
- python读取xml文件
关于python读取xml文章很多,但大多文章都是贴一个xml文件,然后再贴个处理文件的代码.这样并不利于初学者的学习,希望这篇文章可以更通俗易懂的教如何使用python 来读取xml 文件. 什么是 ...
- python 解析xml 文件: Element Tree 方式
环境 python:3.4.4 准备xml文件 首先新建一个xml文件,countries.xml.内容是在python官网上看到的. <?xml version="1.0" ...
随机推荐
- 进击的Python【第七章】:python各种类,反射,异常处理和socket基础
Python的高级应用(三)面向对象编程进阶 本章学习要点: 面向对象高级语法部分 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 一.面向对象高级语法部分 静态方法 ...
- 【Visual Studio Code 】使用Visual Studio Code + Node.js搭建TypeScript开发环境
1.准备工作 Node.js Node.js - Official Site Visual Studio Code Visual Studio Code - Official Site 安装Node. ...
- Proactive Patching Overview
1.Proactive Patching Overview Between Patch Set releases, Oracle's proactive patching program provid ...
- win7 系统 右键很慢
一般都是显卡驱动造成的, 在桌面按右键反应慢,通常都是显卡驱动程序惹的祸,最最简单有效的办法就是:开始--运行--. 运行regsvr32 /u igfxpph.dll
- Windows 7下如何在Cygwin下正确安装Tcpreplay(图文详解)
可以在大家安装的Cygwin的安装目录下执行(我的这里是D:\SoftWare\cygwin) #winpcap的安装过程:|$ unzip WpdPack_4_1_2.zip|$ cp -r Wpd ...
- javascript 笔记--变量
用了这么久的Javascript,该总结下了!温故而知新! var 声明变量: javascript 是弱类型语言,因此无需为声明对象明确类型声明. 如:var test="字符串" ...
- form表单ajaxSubmit提交并验证
html: <form class="register-form" action="{:U('')}" method="post"&g ...
- Collection接口框架图
Java集合大致可分为Set.List和Map三种体系,其中Set代表无序.不可重复的集合:List代表有序.重复的集合:而Map则代表具有映射关系的集合.Java 5之后,增加了Queue体系集合, ...
- 原生jsonp跨域
<script> // jsonp跨域原生写法 var script = document.createElement('script'); script.src = 'http://19 ...
- H5 canvas 之乱画
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...