XML 是树形结构
有根节点、分支节点、叶子节点。
- 根节点:最顶层,整个文档只能有一个根元素
- 子节点(子元素):根里面嵌套的标签
- 叶子节点:不再包含子元素,只有文本内容的节点
XML 声明(文档第一行)
xml
<?xml version="1.0" encoding="ISO-8859-1"?>
Code language: HTML, XML (xml)
<?xml ?>:XML 声明,必须写在文档最开头,前面不能有任何内容version="1.0":XML 版本号,几乎都是 1.0encoding="ISO‑8859‑1":字符编码;如果是中文一般写encoding="UTF‑8"
声明不是 XML 元素,没有结束标签。
示例完整文档
<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>李工</to>
<from>王经理</from>
<heading>重要通知</heading>
<body>下午三点大会议室开会,准时参加!</body>
</note>
Code language: HTML, XML (xml)
结构拆解:
- 第一行:XML 声明
<note>:根元素(根节点),整个文档唯一根<to>、<from>、<heading>、<body>:note 的子元素(叶子节点,内部只有文本)</note>:根元素闭合标签
通用树模板
<root>
<child>
<subchild>.....</subchild>
<subchild>.....</subchild>
</child>
<child>
<subchild>.....</subchild>
</child>
</root>
Code language: HTML, XML (xml)
- root:根节点
- child:root 的子节点
- subchild:child 的子节点(叶子)
书架案例(带属性)
xml
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
Code language: HTML, XML (xml)
结构分析:
<bookstore>:根节点,整个文档只能有一个根- 3 个
<book>:bookstore 的直接子节点 category="COOKING":是<book>的属性<title lang="en">:lang="en"是 title 的属性;title、author、year、price 是 book 的子叶子节点,存放书籍数据。
总结
- XML 文档整体是树形结构:根 → 子节点 → 叶子节点。
- XML 声明
<?xml version="1.0" encoding="UTF‑8"?>,放在文档第一行,不是元素。 - 整个 XML 文档有且只能有一个根元素。
- 元素可以嵌套;属性写在开始标签内,
属性名="值"。 - 叶子节点:内部只有文本,不再嵌套子标签。