XML(eXtensible Markup Language,可扩展标记语言)是用于存储和传输数据的理想格式。DOM(Document Object Model,文档对象模型)是一种表示XML文档的对象模型,它允许程序和脚本动态地访问和更新文档内容、结构和样式。掌握XML DOM对于处理XML数据至关重要。以下是一些实战案例,帮助你轻松入门XML DOM。
了解XML DOM
首先,让我们简要回顾一下XML DOM的基本概念。
- 节点(Node):XML文档中的每一个组成部分都是一个节点,包括元素、属性、文本等。
- 元素(Element):XML文档中的标记。
- 属性(Attribute):元素的特性。
- 文本(Text):元素中的文本内容。
DOM树结构代表了XML文档的结构,每个节点都对应DOM树中的一个节点。
实战案例一:解析XML文档
1. 创建XML文档
<?xml version="1.0" encoding="UTF-8"?>
<books>
<book id="1">
<title>《JavaScript高级程序设计》</title>
<author>Nicholas C. Zakas</author>
<price>99.99</price>
</book>
<book id="2">
<title>《HTML与CSS设计精粹》</title>
<author>Lea Verou</author>
<price>89.99</price>
</book>
</books>
2. 使用Python解析XML文档
import xml.etree.ElementTree as ET
# 加载XML文档
tree = ET.parse('books.xml')
root = tree.getroot()
# 遍历DOM树
for book in root.findall('book'):
print(f"ID: {book.get('id')}")
print(f"Title: {book.find('title').text}")
print(f"Author: {book.find('author').text}")
print(f"Price: {book.find('price').text}")
print("------")
3. 结果展示
ID: 1
Title: 《JavaScript高级程序设计》
Author: Nicholas C. Zakas
Price: 99.99
------
ID: 2
Title: 《HTML与CSS设计精粹》
Author: Lea Verou
Price: 89.99
------
实战案例二:修改XML文档
1. 修改价格
# 修改第二本书的价格
for book in root.findall('book'):
if book.get('id') == '2':
price = book.find('price')
price.text = '79.99'
break
# 保存修改后的XML文档
tree.write('books_modified.xml')
2. 结果展示
打开books_modified.xml文件,可以看到价格已经被修改。
实战案例三:添加和删除节点
1. 添加新书
new_book = ET.SubElement(root, 'book', {'id': '3'})
title = ET.SubElement(new_book, 'title')
title.text = '《CSS揭秘》'
author = ET.SubElement(new_book, 'author')
author.text = 'Estelle Weyl'
price = ET.SubElement(new_book, 'price')
price.text = '79.99'
2. 删除第一本书
root.remove(root.find('book[@id="1"]'))
3. 结果展示
修改后的XML文档中包含了新书,并删除了第一本书。
总结
通过以上实战案例,相信你已经对XML DOM有了更深入的了解。掌握XML DOM可以帮助你轻松处理XML数据,提高工作效率。在实际应用中,XML DOM还可以与各种编程语言和框架结合,实现更丰富的功能。祝你学习愉快!
