Detailed introduction to XML principle code examples

黄舟
Release: 2017-03-31 14:18:34
Original
1359 people have browsed it

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>
Copy after login

实例解释:
第一行是 XML 声明。它定义 XML 的版本 (1.0) 和所使用的编码 (ISO-8859-1 = Latin-1/西欧字符集)。
描述文档的根元素

<note>//根元素的开始 
  ** 
</note> //根元素的结尾
Copy after login

4个子元素

<to>George</to> 
<from>John</from> 
<heading>Reminder</heading> 
<body>Don&#39;t forget the meeting!</body>
Copy after login

就这样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>
Copy after login

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

<p>This is a paragraph	//错 
<p>This is a paragraph</p>	//对
Copy after login

XML 标签对大小写敏感

<Message>这是错误的。</message> //错 
<message>这是正确的。</message> //对
Copy after login

XML 必须正确地嵌套

<b><i>This text is bold and italic</b></i>	//错 
<b><i>This text is bold and italic</i></b>	//对
Copy after login

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>
Copy after login

实体引用:就是特殊字符的转意。
< < 小于
> > 大于
& & 和号
' ' 单引号
" " 引号

<message>if salary &lt; 1000 then</message>
Copy after login

想要的:

<message>if salary < 1000 then</message>
Copy after login

XML 中的注释

<!-- This is a comment -->
Copy after login

在 XML 中,空格会被保留

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

HTML:Hello           my name is David. 
输出:Hello my name is David.
Copy after login

在 XML 中,文档中的空格不会被删节。

XML 元素
开始标签直到(且包括)结束标签的部分。如:

<from>John</from>
Copy after login

元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。如:

<book category="CHILDREN">	//category(属性) 
  <title>Harry Potter</title> //book的子元素,这个子元素只有文本内容 
  <author>J K. Rowling</author> 
  <year>2005</year> 
  <price>29.99</price> 
</book>
Copy after login

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>
Copy after login

没有什么规矩可以告诉我们什么时候该使用属性,而什么时候该使用子元素,在 XML 中,
您应该尽量避免使用属性。如果信息感觉起来很像数据,那么请使用子元素吧。

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

XML 命名空间(XML Namespaces)

XML 命名空间提供避免元素命名冲突的方法。
这个 XML 文档携带着某个表格中的信息:

<table> 
   <tr> 
   <td>Apples</td> 
   <td>Bananas</td> 
   </tr> 
</table>
Copy after login

这个 XML 文档携带有关桌子的信息(一件家具):

<table> 
   <name>African Coffee Table</name> 
   <width>80</width> 
   <length>120</length> 
</table>
Copy after login

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

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

使用前缀来避免命名冲突

<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>
Copy after login

使用命名空间(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>
Copy after login

此 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>
Copy after login

默认的命名空间(Default Namespaces)

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

<table xmlns="http://www.w3.org/TR/html4/"> 
   <tr> 
   <td>Apples</td> 
   <td>Bananas</td> 
   </tr> 
</table>
Copy after login

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

<table xmlns="http://www.w3school.com.cn/furniture"> 
   <name>African Coffee Table</name> 
   <width>80</width> 
   <length>120</length> 
</table>
Copy after login

命名空间是就近原则的

<?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>
Copy after login

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>
Copy after login

The above is the detailed content of Detailed introduction to XML principle code examples. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!