Python09(XML解析)

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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值