什么是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类:

  1. 元素节点
  2. 文本节点
  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文件处理的更多相关文章

  1. python - XML文件及其操作

    xml文件也是实现不同语言或者程序之间进行数据交换的协议,它的特点是尖括号开头,尖括号结尾.使用范围就更为广泛了,tomcat resin kvm 等等,使用了大量的xml文件来进行相关配置.先来看一 ...

  2. python XML文件解析:用xml.dom.minidom来解析xml文件

    python解析XML常见的有三种方法: 一是xml.dom.*模块,是W3C DOM API的实现,若需要处理DOM API则该模块很合适, 二是xml.sax.*模块,它是SAX API的实现,这 ...

  3. python xml文件解析 及生成xml文件

    #解析一个database的xml文件 """ <databaselist type="database config"> <dat ...

  4. python XML文件解析:用ElementTree解析XML

    Python标准库中,提供了ET的两种实现.一个是纯Python实现的xml.etree.ElementTree,另一个是速度更快的C语言实现xml.etree.cElementTree.请记住始终使 ...

  5. python xml文件解析

    参考链接:http://www.runoob.com/python/python-xml.html

  6. python处理xml文件

    参考:https://docs.python.org/2/library/xml.etree.elementtree.html 例子: <?xml version="1.0" ...

  7. python 生成 xml文件 属性的顺序问题

    需求很奇葩. 文档示例 <ITEM key="username" eng="User Name" chn="用户名" val=&quo ...

  8. python读取xml文件

    关于python读取xml文章很多,但大多文章都是贴一个xml文件,然后再贴个处理文件的代码.这样并不利于初学者的学习,希望这篇文章可以更通俗易懂的教如何使用python 来读取xml 文件. 什么是 ...

  9. python 解析xml 文件: Element Tree 方式

    环境 python:3.4.4 准备xml文件 首先新建一个xml文件,countries.xml.内容是在python官网上看到的. <?xml version="1.0" ...

随机推荐

  1. DP + 概率 + 贪心 UVA 1456 Cellular Network

    题目传送门 题意:(摘自LRJ<训练指南>) 手机在蜂窝网络中的定位是一个基本问题.假设蜂窝网络已经得知手机处于c1, c2,…,cn这些区域中的一个,最简单的方法是同时在这些区域中寻找手 ...

  2. 贪心 Codeforces Round #173 (Div. 2) B. Painting Eggs

    题目传送门 /* 题意:给出一种方案使得abs (A - G) <= 500,否则输出-1 贪心:每次选取使他们相差最小的,然而并没有-1:) */ #include <cstdio> ...

  3. orcl 11g 创建表空间

    Oracle11g创建表空间语句   在plsql工具中执行以下语句,可建立Oracle表空间. /*分为四步 *//*第1步:创建临时表空间  */create temporary tablespa ...

  4. [BZOJ2005][NOI2010]能量采集 数学

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2005 发现与$(0,0)$连线斜率相同的点会被挡住.也就是对于$(a,b)$且$gcd(a ...

  5. Prim算法以及Kruskal算法

    Prim算法主要用于计算最小生成树.算法在选取最小路径的时候需要优化,算法思路:从某个顶点开始,假设v0,此时v0属于最小生成树结点中的一个元素,该集合假设V,剩下的点待选择的点为U,然后找寻V中的点 ...

  6. Apache Tomcat 之路(三 部署多个应用)

    想要在一台服务器上部署多个web应用的时候有两种部署方式:1.拷贝多个tomcat 服务器,每个服务器启动不同的web应用;2.一个tomcat容器部署多个web应用 两种方式的优缺点:多个tomca ...

  7. logback配置模板

    <?xml version="1.0" encoding="UTF-8"?> <configuration>     <prope ...

  8. IE浏览器样式表限制

    原文链接:http://caibaojian.com/ie-stylesheet.html 在开发头条上发现的IE浏览器样式限制,算是一个IE浏览器的一个bug吧.主要有4点限制:· IE9及以下单个 ...

  9. C# 获取目录下文件

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  10. nginx 服务器

    1.windows版本的nginx启动报错 No mapping for the Unicode character exists in the target multi-byte code page ...