XML轻松学习手册(5)XML实例解析

我死给谁看

我死给谁看

2016-02-19 22:30

人生本是一个不断学习的过程,在这个过程中,图老师就是你们的好帮手,下面分享的XML轻松学习手册(5)XML实例解析懂设计的网友们快点来了解吧!

  第五章:XML实例解析
  
  提纲:
  
  一:实例效果
  
  二:实例解析
  1.定义新标识。
  2.建立XML文档。
  3.建立相应的HTML文件。
  
  XML在不同领域有着广泛的应用,比如在科技领域的MathML,无线通信应用的WML,在网络图象方面的SVG等等,我们这里侧重讨论XML在web上的应用。XML在web上应用主要是利用其强大的数据操作能力。一般用XML配合javascript和asp等服务器端程序,可以实现网络上几乎所有的应用需求。
  
  考虑讲解方便,我们在下面介绍一个简单的实例,不包含服务器端程序。目的在于让您对XML的数据操作能力有一个感性的认识。
  
  好,我们首先[ 点击这里 ]来看实例的效果。(请用IE5.0以上版本浏览器打开)
  
  这是一个简单的CD唱片数据检索功能。你通过点击"上一张","下一张"可以看到单张CD的有关信息。这样的效果我们原来用两种方法可以实现:
  
  1.利用DHTML,将数据隐藏在不同的层中,通过鼠标事件依次显示;
  
  2.利用后台程序(如ASP,CGI,PHP,JSP等),调用服务器端的数据。
  
  但是在这个实例中,我们打开页面原代码可以看到,其中没有用DHTML的DIV,也没有表单的action,它完全是用XML来实现的。下面我们来分析它的制作过程:
  
  第一步:定义新标识。
  根据实际的CD数据,首先新建一个名为CD的标识;其次建立它相关的数据标识,分别是:CD名称Title,演唱者Artist,出版年代Year,国家Country,发行公司Company和价格Price;最后还要建立一个名为目录CATALOG的标识。为什么要再建立一个CATALOG标识呢?因为在XML文档中规定,必须且只能有一个根元素(标识),我们有多个CD数据,这些数据是并列的关系,所以需要为这些并列的元素建立一个根元素。
  以上元素的定义和关系都完全符合XML标准,不需要特别的DTD文件来定义,所以可以省略DTD定义。如果我们想使用DTD来定义,以上过程可以表示为:
  
  !ELEMENT CATALOG (CD)*
  !ELEMENT CD (Title,Artist,Year,Country,Company,Price)
  !ELEMENT Title (#PCDATA)
  !ELEMENT Artist (#PCDATA)
  !ELEMENT Year (#PCDATA)
  !ELEMENT Country (#PCDATA)
  !ELEMENT Company (#PCDATA)
  !ELEMENT Price (#PCDATA)
  
  这段代码表示:元素CATALOG包含多个CD子元素,而子元素CD又依次包含Title, Artist, Year, Country, Company, Price 六个子元素,它们的内容都定义为文本(字符,数字,文本)。(注:具体的语法说明可以看上一章关于DTD的介绍)
  
  第二步:建立XML文档。
  
  ?xml version="1.0"?
  CATALOG
  CD
  TITLEEmpire Burlesque/TITLE
  ARTISTBob Dylan/ARTIST
  COUNTRYUSA/COUNTRY
  COMPANYColumbia/COMPANY
  PRICE10.90/PRICE
  YEAR1985/YEAR
  /CD
  CD
  TITLEHide your heart/TITLE
  ARTISTBonnie Tylor/ARTIST
  COUNTRYUK/COUNTRY
  COMPANYCBS Records/COMPANY
  PRICE9.90/PRICE
  YEAR1988/YEAR
  /CD
  CD
  TITLEGreatest Hits/TITLE
  ARTISTDolly Parton/ARTIST
  COUNTRYUSA/COUNTRY
  COMPANYRCA/COMPANY
  PRICE9.90/PRICE
  YEAR1982/YEAR
  /CD
  CD
  TITLEStill got the blues/TITLE
  ARTISTGary More/ARTIST
  COUNTRYUK/COUNTRY
  COMPANYVirgin redords/COMPANY
  PRICE10.20/PRICE
  YEAR1990/YEAR
  /CD
  CD
  TITLEEros/TITLE
  ARTISTEros Ramazzotti/ARTIST
  COUNTRYEU/COUNTRY
  COMPANYBMG/COMPANY
  PRICE9.90/PRICE
  YEAR1997/YEAR
  /CD
  /CATALOG
  
  上面代码首先用?xml version="1.0"?声明语句表明这是一个XML文档,它的格式遵守XML 1.0标准规范。然后是文档内容,结构树非常清晰:
  CATALOG
  CD
  ......
  /CD
  CD
  ......
  /CD
  
  /CATALOG
  一共定义了5组数据。我们将上面的代码存为cd.xml文件,以备调用。
  

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

  第三步:建立相应的HTML文件。
  1.导入XML数据。
  我们知道,目前流行的浏览器中,暂时只有微软的IE5.0以上版本浏览器支持XML。IE是通过在HTML中的object物件来支持插入XML,并通过js的XMLDocument.load()方法来导入数据。我们看代码: object WIDTH="0" HEIGHT="0"
  CLASSID="clsid:550dda30-0541-11d2-9ca9-0060b0ec3d39" ID="xmldso"
  /object
  
  定义一个object,ID名为xmldso。然后在head区用js引入xml数据:
  
  script for="window" event="onload"
  xmldso.XMLDocument.load("cd.xml");
  /script
  
  2.捆绑数据。
  然后将用SPAN标识来将XML数据绑定在表格中。其中ID,DATASRC,DTATFLD都是SPAN的属性。代码如下:
  
  table
  trtdTitle:/tdtdSPAN ID="title" DATASRC=#xmldso DATAFLD="TITLE"/SPAN/td/tr
  trtdArtist:/tdtdSPAN ID="artist" DATASRC=#xmldso DATAFLD="ARTIST"/SPAN/td/tr
  trtdYear:/tdtdSPAN ID="year" DATASRC=#xmldso DATAFLD="YEAR"/SPAN/td/tr
  trtdCountry:/tdtdSPAN ID="country" DATASRC=#xmldso DATAFLD="COUNTRY"/SPAN/td/tr
  trtdCompany:/tdtdSPAN ID="company" DATASRC=#xmldso DATAFLD="COMPANY"/SPAN/td/tr
  trtdPrice:/tdtdSPAN ID="price" DATASRC=#xmldso DATAFLD="PRICE"/SPAN/td/tr
  /table
  
  3.动作操作。
  最后,为数据提供浏览按钮:
  INPUT TYPE=button VALUE="上一张CD" ONCLICK="moveprevious()"
  INPUT TYPE=button VALUE="下一张CD" ONCLICK="movenext()"
  
  并利用js来完成两个鼠标点击功能:movenext()和moveprevious()。在head区加入如下代码:
  
  script language="JavaScript"
  function movenext()
  {
  if (xmldso.recordset.absoluteposition xmldso.recordset.recordcount)
  {
  xmldso.recordset.movenext();
  }
  }
  function moveprevious()
  {
  if (xmldso.recordset.absoluteposition 1)
  {
  xmldso.recordset.moveprevious();
  }
  }
  /script
  
  好,我们先看HTML文件的全部原代码:
  
  html
  head
  
  script for="window" event="onload"
  xmldso.XMLDocument.load("cd.xml");
  /script
  
  script language="JavaScript"
  function movenext()
  {
  if (xmldso.recordset.absoluteposition xmldso.recordset.recordcount)
  {
  xmldso.recordset.movenext();
  }
  }
  function moveprevious()
  {
  if (xmldso.recordset.absoluteposition 1)
  {
  xmldso.recordset.moveprevious();
  }
  }
  /script
  
  TITLECD Navigate/TITLE
  /head
  
  body
  p
  object WIDTH="0" HEIGHT="0"
  CLASSID="clsid:550dda30-0541-11d2-9ca9-0060b0ec3d39" ID="xmldso"
  /object
  
  table
  trtdTitle:/tdtdSPAN ID="title" DATASRC=#xmldso DATAFLD="TITLE"/SPAN/td/tr
  trtdArtist:/tdtdSPAN ID="artist" DATASRC=#xmldso DATAFLD="ARTIST"/SPAN/td/tr
  trtdYear:/tdtdSPAN ID="year" DATASRC=#xmldso DATAFLD="YEAR"/SPAN/td/tr
  trtdCountry:/tdtdSPAN ID="country" DATASRC=#xmldso DATAFLD="COUNTRY"/SPAN/td/tr
  trtdCompany:/tdtdSPAN ID="company" DATASRC=#xmldso DATAFLD="COMPANY"/SPAN/td/tr
  trtdPrice:/tdtdSPAN ID="price" DATASRC=#xmldso DATAFLD="PRICE"/SPAN/td/tr
  /table
  
  p
  INPUT TYPE=button VALUE="上一张CD" ONCLICK="moveprevious()"
  INPUT TYPE=button VALUE="下一张CD" ONCLICK="movenext()"
  /p
  
  /body
  /html
  
  将以上代码存为cd.htm文件,于第二步的cd.xml文件放在一起。打开cd.htm文件,你就看见和上面实例一样的效果了。
  
  好,到今天为止,我们已经学习了关于XML的不少知识,我们来总结一下前面五个章节,分别是XML快速入门,XML的概念原理,XML的术语,XML的语法和本章的实例解析。到这里,教程部分就结束了。在写作过程中,阿捷尽最大努力将有关XML概念讲得通俗易懂,尽量把自己的理解告诉给大家,但因为本人学习XML时间也不长,对整个XML的技术把握还不够系统和深入,所以难免有疏漏的地方,请大家指正和谅解,谢谢!
  

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)
展开更多 50%)
分享

猜你喜欢

XML轻松学习手册(5)XML实例解析

Web开发
XML轻松学习手册(5)XML实例解析

XML轻松学习手册(6)XML实例解析

Web开发
XML轻松学习手册(6)XML实例解析

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

XML轻松学习手册(5)XML语法之三

Web开发
XML轻松学习手册(5)XML语法之三

XML轻松学习手册(5)XML语法之二

Web开发
XML轻松学习手册(5)XML语法之二

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

XML轻松学习手册(5)XML语法之一

Web开发
XML轻松学习手册(5)XML语法之一

XML轻松学习手册

PHP
XML轻松学习手册

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Ajax: 一个建立Web应用的新途径

Ajax: 一个建立Web应用的新途径

让Win10电脑不待机不休眠方法

让Win10电脑不待机不休眠方法
下拉加载更多内容 ↓