xml文件处理
XML 指可扩展标记语言,
XML 被设计用来传输和存储数据。
XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。
xml和html区别:
xml:传输存储数据
html:显示网页
xml特征:
它是有标签对组成
标签可以有属性 id,name
标签对可以嵌入数据 <a></a>
标签可以嵌入子标签 具有层次结构
xml文件结构
第一行定义编码,版本
<note> 根元素
Dom 文档队形模型
一个 DOM 的解析器在解析一个 XML 文档时,一次性读取整个文档,把文档中所有元素保存在内存中的一个树结构里,
之后你可以利用DOM 提供的不同的函数来读取或修改文档的内容和结构,也可以把修改过的内容写入xml文件。
有啥作用?
为了操作html或xml中的元素,比如说把js的标题改了
document.title=“王书平”
手工打造一个xml文件
class.xml
<class>
<student>
<name>jack</name>
<age>34</age>
<city>beijign</city>
</student>
<student>
<name>lucy</name>
<age>39</age>
<city>shanghai</city>
</student>
<student>
<name>lily</name>
<age>30</age>
<city>tianjin</city>
</student>
<teacher>
<name>mary</name>
<age>50</age>
<city>guangzhou</city>
</teacher>
<account>
<login username="studnet" password="123456"/>
<login username="teacher" password="666899"/>
</account>
</class>
读取xml元素节点
xml节点
文件节点分为3类
元素节点
文本节点
属性节点
每个节点都拥有自己的属性
nodename
nodevalue
nodetype
元素节点返回1
属性节点返回2
xml_read,py
get_nodeinfo
from xml.dom import minidom
#打开xml文件
dom=mindom.parse('class_info.xml')
root=dom.doucumentElement
print(root.nodeName)
print(root.nodeValue)
print(root.nodeType)
读取文本节点的值
from xml.dom import minidom
#打开xml文件
dom=mindom.parse('class_info.xml')
root=dom.doucumentElement
names=root.getElementsByTagName("name")
ages=root.getElementsByTagName("age")
citys=root.getElementsByTagName("city")
for i in range(4):
print(names[i].firstChild.data)
print(ages[i].firstChild.data)
print(citys[i].firstChild.data)
读取属性节点的值
from xml.dom import minidom
#打开xml文件
dom=mindom.parse('class_info.xml')
root=dom.doucumentElement
logins=root.getElementsByTagName("login")
for i in range(2):
print(logins[i].getAttribute("userName"))
print(logins[i].getAttribute("passWorld"))
读取xml子节点的属性
from xml.dom import minidom
#打开xml文件
dom=mindom.parse('class_info.xml')
root=dom.doucumentElement
tags=root.getElementsByTagName("student")
print(tags[0].nodeName)
print(tags[0].nodeValue)
print(tags[0].nodeValue)