详细介绍XML原理代码实例
XML 简介
XML 被设计用来传输和存储数据。类似于JSON。
XML 指可扩展标记语言(EXtensible Markup Language)
XML 是一种标记语言,很类似 HTML
XML 的设计宗旨是传输数据,而非显示数据
XML 标签没有被预定义。您需要自行定义标签。
XML 被设计为具有自我描述性。
XML 是 W3C 的推荐标准
XML 被设计用来结构化、存储以及传输信息。(没有格式双方很难知道信息的结构内容)
实例:
<?xml version="1.0" encoding="utf-8"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>
实例解释:
第一行是 XML 声明。它定义 XML 的版本 (1.0) 和所使用的编码 (ISO-8859-1 = Latin-1/西欧字符集)。
描述文档的根元素
<note>//根元素的开始 ** </note> //根元素的结尾
4个子元素
<to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body>
就这样XML文档会形成一种树结构,如下:
<?xml version="1.0" encoding="utf-8"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body> <A>George</A> <B>John</B> <C>Reminder</C> </body> </note>
所有 XML 元素都须有关闭标签
<p>This is a paragraph //错 <p>This is a paragraph</p> //对
XML 标签对大小写敏感
<Message>这是错误的。</message> //错 <message>这是正确的。</message> //对
XML 必须正确地嵌套
<b><i>This text is bold and italic</b></i> //错 <b><i>This text is bold and italic</i></b> //对
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>
实体引用:就是特殊字符的转意。
< < 小于
> > 大于
& & 和号
' ' 单引号
" " 引号
<message>if salary < 1000 then</message>
想要的:
<message>if salary < 1000 then</message>
XML 中的注释
<!-- This is a comment -->
在 XML 中,空格会被保留
HTML 会把多个连续的空格字符裁减(合并)为一个:
HTML:Hello my name is David. 输出:Hello my name is David.
在 XML 中,文档中的空格不会被删节。
XML 元素
开始标签直到(且包括)结束标签的部分。如:
<from>John</from>
元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。如:
<book category="CHILDREN"> //category(属性) <title>Harry Potter</title> //book的子元素,这个子元素只有文本内容 <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book>
XML 命名规则
XML 元素必须遵循以下命名规则:
名称可以含字母、数字以及其他的字符
名称不能以数字或者标点符号开始
名称不能以字符 “xml”(或者 XML、Xml)开始
名称不能包含空格
XML 元素 vs. 属性
<person sex="female"> //属性 <firstname>Anna</firstname> <lastname>Smith</lastname> </person> <person> <sex>female</sex> //元素 <firstname>Anna</firstname> <lastname>Smith</lastname> </person>
没有什么规矩可以告诉我们什么时候该使用属性,而什么时候该使用子元素,在 XML 中,
您应该尽量避免使用属性。如果信息感觉起来很像数据,那么请使用子元素吧。
属性无法包含多重的值(元素可以)
属性无法描述树结构(元素可以)
属性不易扩展(为未来的变化)
属性难以阅读和维护
XML 命名空间(XML Namespaces)
XML 命名空间提供避免元素命名冲突的方法。
这个 XML 文档携带着某个表格中的信息:
<table> <tr> <td>Apples</td> <td>Bananas</td> </tr> </table>
这个 XML 文档携带有关桌子的信息(一件家具):
<table> <name>African Coffee Table</name> <width>80</width> <length>120</length> </table>
由于两个文档都包含带有不同内容和定义的