XML的简单基础

一、XML简介

XML可扩展标记语言(EXtensible Markup Language)被用来传输和存储数据,其焦点是数据的内容,XML是不作为的。

二、XML树结构

XML文档形成了一种树结构,它从“根部”开始,然后扩展到“枝叶”。以VOC2007数据集中一个xml文件为例:
在这里插入图片描述

第一行是XML声明,它定义XML版本1.0;
下一行 <annotation>是描述文档的根元素;
接下来是子元素,以及子元素的子元素;
最后一行</annotation>定义根元素的结尾。
所有元素均可拥有子元素,父元素拥有子元素,相同层级上的子元素成为同胞(兄弟或姐妹)文档结构如下:

<root>
  <child>
    <subchild>.....</subchild>
  </child>
</root>

三、XML语法规则

所有XML元素都必须有关闭标签,省略关闭标签是非法的。
XML声明不属于XML本身的组成部分,也不是XML元素,不需要关闭标签。
XML标签对大小写敏感,必须使用相同大小写来编写打开标签和关闭标签。
XML必须正确的嵌套。

<p>This is a paragraph</p>
<p>This is another paragraph</p>  
<Message>这是错误的。</message>
<message>这是正确的。</message> 
<b><i>This text is bold and italic</i></b>

遇到过一个bug:xml.etree.ElementTree.ParseError: mismatched tag: line 30,column 4,就是因为少了一个打开标签。

四、XML应用实例

import xml.etree.ElementTree as ET----------导入xml模块
root = ET.parse('GHO.xml')------------------分析指定xml文件
tree = root.getroot()-----------------------获取第一标签
data = tree.find('Data')--------------------查找第一标签中'Data'标签
for obs in data:----------------------------历遍'Data'中的所有标签
    for item in obs:------------------------历遍'Data'中的'obs'标签下的所有标签
        key = item.attrib()-----------------提取key值参数
        print(list(key))--------------------输出key值

参考XML教程 https://www.w3school.com.cn/xml/index.asp
参考ET读取xml https://www.cnblogs.com/anglesheepbobo/p/7849893.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值