XML基础

来源:互联网 发布:网络回路检测 编辑:程序博客网 时间:2024/06/15 16:51

简介

  • xml原名extensible markup language,可扩展标记语言,类似html
  • 设计目的是传输数据,html的目的则是显示数据
  • xml的标签没有被预定义,需要自己定义标签
  • 具有自我描述性,是w3c的推荐标准

与html的差异

  • 不是html的替代,目的不一样
  • xml的目的是传输和存储数据,焦点是数据的内容,html目的是用来显示数据,焦点是数据的外观
  • html旨在显示信息,xml旨在传输信息

xml树结构

  • 一个demo代码:
<?xml version="1.0" encoding="ISO-8859-1"?><note><to>George</to><from>John</from><heading>Reminder</heading><body>Don't forget the meeting!</body></note>
  • 第一行是xml声明,是根元素,包含4个子元素,和html的格式有点类似
  • xml文档会形成一种树结构,父元素拥有子元素
  • 所有元素都有自己的文本内容和属性

xml语法规则

  • xml所有元素必须都要有关闭标签
  • 声明不属于xml本身的组成部分,不需要关闭标签
  • xml标签对大小写敏感
  • xml元素必须正确的嵌套
  • 必须要有根元素
  • xml也可以拥有属性,属性要加双引号
  • 一个demo代码:
<note date="08/08/2008"><to>George</to><from>John</from></note> 
  • date是note标签的属性
  • 实体引用:在xml中一些字符有特殊的含义,比如说>,<这种,使用时要用实体引用来代替,类似于转义符号。

< < 小于
> > 大于
& & 和号
' ’ 单引号
" ” 引号
- 一个demo例子,这里用<来代替小于符号

<message>if salary &lt; 1000 then</message> 
  • xml的注释,一个demo例子:
<!-- This is a comment  --> 
  • xml中的空格会被保存,文档中的空格不会被删节

xml元素

  • xml元素是指从开始标签到结束标签的部分,包含标签自己
  • 元素可以包含其他元素或者文本,元素也可以拥有属性
  • 一个demo例子:
<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>
  • 元素命名规则:
    – 可以包含字母,数字和其他字符
    – 不能以数字和标点符号开头
    – 不能以xml开头
    – 名称不能包含空格
  • xml元素 vs 属性
  • 一个demo代码:
<person sex="female">  <firstname>Anna</firstname>  <lastname>Smith</lastname></person> <person>  <sex>female</sex>  <firstname>Anna</firstname>  <lastname>Smith</lastname></person> 

– 两个例子,sex在第一个是属性,第二个是子元素。两种格式都可以提供相同的信息,xml提倡的是尽量少用属性

使用属性可能会引起的一些问题

  • 属性无法包含多重值
  • 属性不能描述树结构
  • 属性不容易扩展
  • 属性难以阅读和维护
  • 尽量使用元素来描述数据,仅仅使用属性来提供与数据无关的信息

针对元数据的xml属性

  • 一个demo代码:
  <note id="501">    <to>George</to>    <from>John</from>    <heading>Reminder</heading>    <body>Don't forget the meeting!</body>  </note>  <note id="502">    <to>John</to>    <from>George</from>    <heading>Re: Reminder</heading>    <body>I will not</body>  </note> </messages>
  • 上面的id是一个标识符,标识不同的便签,并不是便签数据的组成部分
  • 元数据(有关数据的数据)应该存储为属性,而数据本身应当存储为元素

结构良好的xml文档语法

  • 必须有根元素
  • 必须有关闭标签
  • 标签对大小写敏感
  • 元素必须被正确的嵌套
  • 属性必须加引号

XMLHttpRequest对象

  • 此对象用于在后台于服务器交换数据
  • 在不重新加载页面的情况下更新网页
  • 在页面已经加载后从服务器请求数据
  • 在页面已经加载后从服务器接收数据
  • 在后台向服务器发送数据
    -通过一个javaScript语句就可以创建XMLHttpRequest对象:
    xmlhttp = new XMLHttpRequest();
  • 一个demo代码:
<script type="text/javascript">var xmlhttp;function loadXMLDoc(url){xmlhttp=null;if (window.XMLHttpRequest)  {// code for all new browsers  xmlhttp=new XMLHttpRequest();  }else if (window.ActiveXObject)  {// code for IE5 and IE6  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");  }if (xmlhttp!=null)  {  xmlhttp.onreadystatechange=state_Change;  xmlhttp.open("GET",url,true);  xmlhttp.send(null);  }else  {  alert("Your browser does not support XMLHTTP.");  }}function state_Change(){if (xmlhttp.readyState==4)  {// 4 = "loaded"  if (xmlhttp.status==200)    {// 200 = OK    // ...our code here...    }  else    {    alert("Problem retrieving XML data");    }  }}</script>
原创粉丝点击