Python——XML模块

XML 模块

参考文档链接:

什么是XML 模块?

  • XML 指可扩展标记语言(EXtensible Markup Language)
  • XML 的设计宗旨是传输数据,而不是显示数据
  • XML 标签没有被预定义,我们需要自行定义标签

XML 的语法格式

1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding = "UTF-8"?>
<!-- XML 声明文件的可选部分,如果存在需要放在文档的第一行 -->
<root> <!-- 根元素 -->
<child name = 'ooc'> <!-- 元素 应该还包含 有属性 'category' -->
<!--XML 属性值必须加引号 -->
<!--在 XML 中,应该尽量避免使用属性。如果信息感觉起来很像数据才使用元素吧-->
<subchild>......</subchild> <!-- 同时,层级必须明确,不可以混乱-->
<subchild1>.....</subchild1> <!-- 同级 -->
</child>
</root> <!--与第三行<root>对应</root>是关闭标签,必须有这样的一对 -->
Case1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<bookstore>
<book category="CHILDREN">
<title>Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title>Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>

XML 命名规则

XML 元素必须遵循以下命名规则:

  • 名称可以包含字母、数字以及其他字符
  • 不能以数字或者标点符号开始
  • 不能以字母xml、XML、Xml等开始
  • 名称不能包含空格
Case2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# file: c.xml
<studentinfo>
<stu1>
<name1>
张三
</name1>

<age1>
20
</age1>

<girlfriend11>
<name11>
张三的女朋友
</name11>
<age11>
19
</age11>
</girlfriend11>

</stu1>
<stu2>
<name2>
李四
</name2>
<age2>
23
</age2>
<girlfriend22>
<name22>
李四的女朋友
</name22>
<age22>
18
</age22>
</girlfriend22>
</stu2>
</studentinfo>



# file:xml模块.py
import xml.etree.ElementTree as ElementTree
# 解析c.xml
tree = ElementTree.parse('c.xml')
print(tree)
# 获取根标签
rootTree = tree.getroot()
print(rootTree)
# iter是用于在全文范围获取标签
for item in rootTree.iter('age22'):
print(item.text)
print(item.text.strip())
# 输出
<xml.etree.ElementTree.ElementTree object at 0x10462a7f0>
<Element 'studentinfo' at 0x1045cbe08>
18
18