目录
1.1 什么是XML语言
1、XML是可扩展标记语言(eXtensible Markup Language)
2、XML是与HTML相似的语言
3、XML用于数据交换
1.2 XML和HTML的区别
XML 和 HTML 都是标记语言。HTML 使用预定义的标签,而 XML 标签是自定义的
XML注重显示数据本身,HTML注重显示的外观和格式
1.3 XML文档结构
1、声明
2、元素
3、根元素
4、子元素
5、元素命名规范
6、属性
7、使用属性还是元素
8、实体
9、CDATA节
10、注释
11、名字空间
1.4 文档类型定义
1、有效的文档
2、DTD文档
3、DTD文档声明及引用
4、DTD元素定义
5、DTD属性定义
属性定义语法 <! ATTLIST 元素名称 属性名称 类型 属性特点>
1、
2、
3、
4、
5、
6、属性特点
1.5 XML Schema
1、
2、Schema与DTD的区别
3、Schema文档结构
1、
4、Schema数据类型
5、复杂数据类型
6、元素的数量
1.6 XPath
1、
2、节点
3、Xpath语法
1.6解析XML文档
1.7 Python解析XML文档
1、ElementTree模块
2、查找指定的子节点
3、添加节点
4、删除节点
5、重新写入
6、
import xml.etree.ElementTree as ET
# 遍历节点函数
def read():
# 创建XML文档节点树
tree = ET.parse("bookstore.xml")
# root是根节点
root = tree.getroot()
# 获得所有的book节点
book_node_list = root.findall("book")
# 遍历所有的book节点
for book_node in book_node_list:
print("--------记录----------")
# 遍历book节点所有子节点
for node in book_node:
# 判断是否是title节点
if node.tag == "title":
# 取出lang属性
value = node.attrib["lang"]
print("lang : {}".format(value))
print("{} : {}".format(node.tag, node.text))
print("遍历节点完成")
# 插入节点
def insert():
# 创建XML文档节点树
tree = ET.parse("bookstore.xml")
# root是根节点
root = tree.getroot()
# 创建一个新的book节点对象
new_book_node = ET.Element("book")
# 创建一个新的title节点对象
new_title_node = ET.SubElement(new_book_node, "title")
new_title_node.text = "Python从小白到大牛"
new_title_node.attrib["lang"] = "zh"
# 创建一个新的price节点对象
new_price_node = ET.SubElement(new_book_node, "price")
new_price_node.text = "89.9"
# 将book节点添加到根节点(books)中
root.append(new_book_node)
# 保存到XML文件
tree.write("bookstore2.xml", "utf-8")
print("修改完成")
# 删除节点
def remove():
# 创建XML文档节点树
tree = ET.parse("bookstore.xml")
# root是根节点
root = tree.getroot()
# XPath表达式
expression = ".//title[@lang='zh']/.."
book_node = root.find(expression)
# 删除book节点
root.remove(book_node)
# 保存到XML文件
tree.write("bookstore3.xml", "utf-8")
print("删除完成")
# 主函数
def main():
read()
insert()
remove()
if __name__ == '__main__':
main()