XML
XML被设计用来传输和存储数据。它也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言
<?xml version="1.0" encoding="utf8"?> <root> <book price="99"> <name>计算机程序设计语言 第1版</name> </book> </root>
节点类型
‘ELEMENT_NODE‘,元素节点; ‘TEXT_NODE‘,文本节点; ‘ATTRIBUTE_NODE‘,属性节点
所以分析上面的xml , book元素节点内有一个属性节点和一个name元素节点,name元素节点力有一个文本节点
xml.dom 读取的api
xml.dom.parse(打开的文件别名) #获取DOM对象
DOM对象.documentElement #获取根节点,根节点唯一,返回不是列表
节点.nodeName #获取nodeName
节点.nodeType #获取nodeType
节点.chileNodes #获取子节点列表
节点.getAttribute("属性名") #获取属性节点的value
节点.getElementsByTagName("css标签名") #获取属性节点的某个标签节点的列表
文本节点.data # 获取某个元素节点的文本内容,先获取子文本节点,然后通过“data”属性获取文本内容
读取xml例子
from xml.dom import minidom
with open(‘acss.xml‘,‘r‘,encoding=‘utf8‘) as fh:
#parse()获取DOM对象
dom=minidom.parse(fh)
# 获取根节点
root=dom.documentElement
# 节点名称
print(root.nodeName)
print(root.nodeType)
# 获取某个节点下所有子节点,是个列表
print(root.childNodes)
# 通过dom对象或根元素,再根据标签名获取元素节点,是个列表
book=root.getElementsByTagName(‘book‘)[0]
# 获取节点属性
print(book.getAttribute(‘price‘))
# 获取某个元素节点的文本内容,先获取子文本节点,然后通过“data”属性获取文本内容
name=root.getElementsByTagName(‘name‘)[0]
name_text_node=name.childNodes[0]
print(name_text_node.data)
# 获取某节点的父节点
print(name.parentNode.nodeName)
原文:https://www.cnblogs.com/seyOrd/p/12686996.html