xml基础知识

XML简介


XML 指可扩展标记语言(EXtensible Markup Language)

XML 是一种标记语言,很类似 HTML
XML 的设计宗旨是传输数据,而非显示数据

XML 标签没有被预定义。您需要自行定义标签


XML语法


所有 XML 元素都须有关闭标签

<p>This is a paragraph</p>
<p>This is another paragraph</p>
注释:声明不属于XML本身的组成部分。它不是 XML 元素,也不需要关闭标签。

XML 标签对大小写敏感


XML 元素使用 XML 标签进行定义,XML 标签对大小写敏感。比如标签 <Letter> 与标签 <letter> 是不同的。我们必须使用相同的大小写来编写打开标签和关闭标签。

<Message>这是错误的。</message>
<message>这是正确的。</message>


XML 必须正确地嵌套


嵌套 即把某个元素放到其他元素的内部。这些新的元素称为 元素,包含它们的元素称为 元素。XML 文档可以使用多层嵌套。

一个常见的语法错误是父元素和子元素的错误嵌套。任何子元素都要完全包含在其父元素的开始和结束标记内部。每个同胞(Sibling)元素必须在下一个同胞元素开始之前结束。

<b><i>This text is bold and italic</i></b>

由于 <i> 元素是在 <b> 元素内打开的,那么它必须在 <b> 元素内关闭。


XML 文档必须有根元素


XML 文档必须有一个元素是所有其他元素的父元素。该元素称为根元素。

<root>
  <child>
    <subchild>.....</subchild>
  </child>
</root>


XML 的属性值须加引号


XML 也可拥有属性(名称/值的对),第一个是错误的,第二是正确的。

<note date=08/08/2008>
<to>George</to>
<from>John</from>
</note> 
<note date="08/08/2008">
<to>George</to>
<from>John</from>
</note> 

XML 中的注释


在 XML 中编写注释的语法与 HTML 的语法很相似。示例如下:

<!-- This is a comment --> 


在 XML 中,空格会被保留


HTML 会把多个连续的空格字符裁减(合并)为一个:

HTML:	Hello           my name is David.
输出:	Hello my name is David.


XML声明


XML 文档的第一行可以是一个 XML 声明。这是文件的可选部分,它将文件识别为 XML 文件,有助于工具和人类识别 XML。可以有三种形式:

简单声明 :

<?xml?>

包含XML版本的声明:

<?xml version="1.0"?>

包含字符编码的声明,示例给出的是unicode编码:

<?xml version="1.0" encoding="utf-8"?>

因为这个声明必须出现在文件的开头,所以如果打算将多个小的 XML 文件合并为一个大 XML 文件,则可以忽略这个可选信息。


XML 元素


XML 元素指的是从开始标签直到结束标签的部分。元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性,见如下示例:

<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> 

<bookstore> 和 <book> 都拥有元素内容,因为它们包含了其他元素。<author> 只有文本内容,因为它仅包含文本。


XML 命名规则


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

  • 名称可以含字母、数字以及其他的字符
  • 名称不能以数字或者标点符号开始
  • 名称不能以字符 “xml”(或者 XML、Xml)开始
  • 名称不能包含空格


XML属性


XML 元素可以在开始标签中包含属性,属性 (Attribute) 提供关于元素的额外(附加)信息。属性由一个名称-值对构成,值包含在双引号中(")元素的开始标记内部输入一个或多个属性,如果要添加多个属性,各个属性之间使用空格分开。

备注:属性值必须被引号包围,不过单引号和双引号均可使用。

<person sex="female">

或者这样也可以:

<person sex='female'>

避免 XML 属性

因使用属性而引起的一些问题:

  • 属性无法包含多重的值(元素可以)
  • 属性无法描述树结构(元素可以)
  • 属性不易扩展(为未来的变化)
  • 属性难以阅读和维护


XML树形结构


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>

例子中的根元素是 <bookstore>。文档中的所有 <book> 元素都被包含在 <bookstore> 中;<book> 元素有 4 个子元素:<title>、< author>、<year>、<price>,其树形结构见下图。

原文地址:https://www.cnblogs.com/jinxiang1224/p/8468393.html