课程表

XML 基础

XML JavaScript

XML 高级

XML 实例

工具箱
速查手册

XML 应用程序

当前位置:免费教程 » XML相关 » XML

本节演示由 HTML 和 JavaScript 构建的一个小型 XML 应用程序。

XML 文档实例

请看下面这个 XML 文档 ( "cd_catalog.xml" ),它描述了一个 CD 目录:

  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <CATALOG>
  3. <CD>
  4. <TITLE>Empire Burlesque</TITLE>
  5. <ARTIST>Bob Dylan</ARTIST>
  6. <COUNTRY>USA</COUNTRY>
  7. <COMPANY>Columbia</COMPANY>
  8. <PRICE>10.90</PRICE>
  9. <YEAR>1985</YEAR>
  10. </CD>
  11. .
  12. .
  13. … more …
  14. .

在您的浏览器中查看完整的 "cd_catalog.xml" 文件

复习:加载 XML 文档

首先,让我们复习一下之前学习过的代码。

为了加载 XML 文档,我们使用了与《XML 解析器》那一节中相同的代码:

  1. if (window.XMLHttpRequest)
  2. {// code for IE7+, Firefox, Chrome, Opera, Safari
  3. xmlhttp=new XMLHttpRequest();
  4. }
  5. else
  6. {// code for IE6, IE5
  7. xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  8. }
  9. xmlhttp.open("GET","cd_catalog.xml",false);
  10. xmlhttp.send();
  11. xmlDoc=xmlhttp.responseXML;

在本代码执行后,xmlDoc 成为一个 XML DOM 对象,可由 JavaScript 访问。

第一步:在任意 HTML 元素中显示 XML 数据

XML 数据可以拷贝到任何有能力显示文本的 HTML 元素。

下面这段代码从第一个 <CD> 元素中获得 XML 数据,然后在 id="showCD" 的 HTML 元素中显示数据:

  1. x=xmlDoc.getElementsByTagName("CD");
  2. i=0;
  3.  
  4. function displayCD()
  5. {
  6. artist=(x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue);
  7. title=(x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue);
  8. year=(x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue);
  9. txt="Artist: " + artist + "<br />Title: " + title + "<br />Year: "+ year;
  10. document.getElementById("showCD").innerHTML=txt;
  11. }

HTML 的 body 元素包含一个 onload 事件属性,它的作用是在页面已经加载时调用 display() 函数。Body 元素中还包含了供接受 XML 数据的 <div id='show'> 元素:

  1. <div id="show"></div>
  2.  
  3. </body>

亲自试一试:XML 数据如何在 <div> 元素中显示

本例只能显示 XML 文档中第一个 CD 元素中的数据。为了导航到数据的下一行,我们需要使用更多的代码。

第二步:添加导航脚本

为了向上例添加导航(功能),需要创建 next() 和 previous() 两个函数:

  1. function next()
  2. {
  3. if (i<x.length-1)
  4. {
  5. i++;
  6. displayCD();
  7. }
  8. }
  9.  
  10. function previous()
  11. {
  12. if (i>0)
  13. {
  14. i--;
  15. displayCD();
  16. }
  17. }

next() 函数确保已到达最后一个 CD 元素后不显示任何东西,previous () 函数确保已到达第一个 CD 元素后不显示任何东西。

通过点击 next/previous 按钮来调用 next() 和 previous() 函数:

  1. <input type="button" onclick="previous()" value="previous" />
  2. <input type="button" onclick="next()" value="next" />

亲自试一试:如何在 XML 记录中导航

最后:当点击 CD 时显示专辑信息

只需要一点点创新,您就可以创建一个完整的应用程序。

最后的例子展示如何在点击某个 CD 项目时显示专辑信息。

亲自试一试

转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号