詳細介紹XML原理程式碼實例

黄舟
發布: 2017-03-31 14:18:34
原創
1404 人瀏覽過

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&#39;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&#39;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 &lt; 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>
登入後複製

由于两个文档都包含带有不同内容和定义的

元素,就会发生命名冲突。

使用前缀来避免命名冲突

<h:table> 
   <h:tr> 
   <h:td>Apples</h:td> 
   <h:td>Bananas</h:td> 
   </h:tr> 
</h:table> 

<f:table> 
   <f:name>African Coffee Table</f:name> 
   <f:width>80</f:width> 
   <f:length>120</f:length> 
</f:table>
登入後複製

使用命名空间(Namespaces)

<h:table xmlns:h="http://www.w3.org/TR/html4/"> 
   <h:tr> 
   <h:td>Apples</h:td> 
   <h:td>Bananas</h:td> 
   </h:tr> 
</h:table>
登入後複製

此 XML 文档携带着有关一件家具的信息:

<f:table xmlns:f="http://www.w3school.com.cn/furniture"> 
   <f:name>African Coffee Table</f:name> 
   <f:width>80</f:width> 
   <f:length>120</f:length> 
</f:table>
登入後複製

默认的命名空间(Default Namespaces)

为元素定义默认的命名空间可以让我们省去在所有的子元素中使用前缀的工作。

<table xmlns="http://www.w3.org/TR/html4/"> 
   <tr> 
   <td>Apples</td> 
   <td>Bananas</td> 
   </tr> 
</table>
登入後複製

此 XML 文档携带着有关一件家具的信息:

<table xmlns="http://www.w3school.com.cn/furniture"> 
   <name>African Coffee Table</name> 
   <width>80</width> 
   <length>120</length> 
</table>
登入後複製

命名空间是就近原则的

<?xml version="1.0" encoding="utf-8"?> 
<root xmlns="dotnet" xmlns:w="wpf"> 
  <!-- xmlns: dotnet --> 
  <a>data in a</a>	//默认的命名空间 
  <!-- xmlns: dotnet --> 
  <w:b>data in b</w:b>	//w命名空间 
  <!-- xmlns: wpf --> 
  <c xmlns="silverlight"> 
    <!-- xmlns: silverlight --> 
    <w:d> 
      <!-- xmlns: wpf --> 
      <e>data in e</e> 
      <!-- xmlns: silverlight -->	//就近原则 
    </w:d> 
  </c> 
</root>
登入後複製

CDATA
术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data)。(就是里面的数据不进行XML解析)
CDATA 部分由 "" 结束:

<script> 
<![CDATA[	//开始 
function matchwo(a,b) 
{ 
if (a < b && a < 0) then 
  { 
  return 1; 
  } 
else 
  { 
  return 0; 
  } 
} 
]]>	//结束 
</script>
登入後複製

以上是詳細介紹XML原理程式碼實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板