`
hereson
  • 浏览: 1453736 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

XML实例解析

    博客分类:
  • vbs
阅读更多

提纲: 

一:实例效果 

二:实例解析 
  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>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
<CD>
<TITLE>Hide your heart</TITLE>
<ARTIST>Bonnie Tylor</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>CBS Records</COMPANY>
<PRICE>9.90</PRICE>
<YEAR>1988</YEAR>
</CD>
<CD>
<TITLE>Greatest Hits</TITLE>
<ARTIST>Dolly Parton</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>RCA</COMPANY>
<PRICE>9.90</PRICE>
<YEAR>1982</YEAR>
</CD>
<CD>
<TITLE>Still got the blues</TITLE>
<ARTIST>Gary More</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>Virgin redords</COMPANY>
<PRICE>10.20</PRICE>
<YEAR>1990</YEAR>
</CD>
<CD>
<TITLE>Eros</TITLE>
<ARTIST>Eros Ramazzotti</ARTIST>
<COUNTRY>EU</COUNTRY>
<COMPANY>BMG</COMPANY>
<PRICE>9.90</PRICE>
<YEAR>1997</YEAR>
</CD>
</CATALOG> 



上面代码首先用<?xml version="1.0"?>声明语句表明这是一个XML文档,它的格式遵守XML 1.0标准规范。然后是文档内容,结构树非常清晰:

程序代码: [ 复制代码到剪贴板 ]
<CATALOG>
<CD>
...... 
</CD>
<CD>
...... 
</CD>

</CATALOG>

一共定义了5组数据。我们将上面的代码存为cd.xml文件,以备调用。 


第三步:建立相应的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>
<tr><td>Title:</td><td><SPAN ID="title" DATASRC=#xmldso DATAFLD="TITLE"></SPAN></td></tr>
<tr><td>Artist:</td><td><SPAN ID="artist" DATASRC=#xmldso DATAFLD="ARTIST"></SPAN></td></tr>
<tr><td>Year:</td><td><SPAN ID="year" DATASRC=#xmldso DATAFLD="YEAR"></SPAN></td></tr>
<tr><td>Country:</td><td><SPAN ID="country" DATASRC=#xmldso DATAFLD="COUNTRY"></SPAN></td></tr>
<tr><td>Company:</td><td><SPAN ID="company" DATASRC=#xmldso DATAFLD="COMPANY"></SPAN></td></tr>
<tr><td>Price:</td><td><SPAN 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>

<TITLE>CD Navigate</TITLE>
</head>

<body>
<p>
<object WIDTH="0" HEIGHT="0"
CLASSID="clsid:550dda30-0541-11d2-9ca9-0060b0ec3d39" ID="xmldso">
</object>

<table>
<tr><td>Title:</td><td><SPAN ID="title" DATASRC=#xmldso DATAFLD="TITLE"></SPAN></td></tr>
<tr><td>Artist:</td><td><SPAN ID="artist" DATASRC=#xmldso DATAFLD="ARTIST"></SPAN></td></tr>
<tr><td>Year:</td><td><SPAN ID="year" DATASRC=#xmldso DATAFLD="YEAR"></SPAN></td></tr>
<tr><td>Country:</td><td><SPAN ID="country" DATASRC=#xmldso DATAFLD="COUNTRY"></SPAN></td></tr>
<tr><td>Company:</td><td><SPAN ID="company" DATASRC=#xmldso DATAFLD="COMPANY"></SPAN></td></tr>
<tr><td>Price:</td><td><SPAN 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的技术把握还不够系统和深入,所以难免有疏漏的地方,请大家指正和谅解,谢谢!

分享到:
评论

相关推荐

    XML轻松学习手册--XML实例解析之一

    《XML轻松学习手册--XML实例解析之一》这篇文章主要介绍了如何使用XML实现一个简单的CD唱片数据检索功能,让我们深入了解XML在Web应用中的数据操作能力。XML(eXtensible Markup Language)是一种可扩展标记语言,...

    php解析xml实例

    php解析xml实例php解析xml实例php解析xml实例php解析xml实例php解析xml实例php解析xml实例php解析xml实例php解析xml实例php解析xml实例php解析xml实例php解析xml实例php解析xml实例

    android解析xml实例

    ### Android解析XML实例详解 #### 一、XML数据结构与示例 在Android开发中,经常需要处理XML格式的数据。本篇文章将通过一个具体的例子来详细介绍如何在Android应用中解析XML文件。 首先,我们来看一下这个例子中...

    SAX解析XML文件实例

    SAX解析XML文件的实例。一个项目同时用dom解析和sax解析xml文件貌似会报错,项目框架建一直是用sax和dom4j解析xml文件的。当我用dom解析xml文件。导入包后就报错识别不了xml文件的编码格式。于是做了一个sax解析xml...

    JAVA 解析XML生成XML文档实例

    JAVA 解析XML和生成XML文档源码。比较全 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML

    dom4j 解析xml实例

    在这个实例中,我们将深入探讨如何使用DOM4J解析XML文件,并通过`Dom4jTest1.java`这个示例程序来理解其工作原理。 首先,我们需要了解XML(Extensible Markup Language)是一种标记语言,常用于存储和传输数据。...

    dom4j解析xml实例

    **DOM4J解析XML实例详解** 在Java编程中,处理XML文档是一项常见的任务。DOM4J是一个非常流行的、强大的Java XML API,它提供了灵活且高效的方式来解析、创建、修改XML文档。本文将深入探讨如何使用DOM4J进行XML...

    vc + XML实例

    **VC++与XML实例解析** XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件和文档存储等领域。VC++,全称Microsoft Visual C++,是微软开发的一款集成开发环境,主要用于...

    JavaScript解析多子节点XML实例

    xml实例: &lt;?xml version="1.0" encoding="GBK"?&gt; &lt;a&gt; &lt;b&gt; &lt;c type="0" centerx="1" centery="2" dispname="3" linestr=""&gt; &lt;d name="OBJECTID" value="100" /&gt; &lt;d name="NAME" value="aaa" /&gt; &lt;/c&gt;...

    PHP操作XML实例

    本实例将探讨如何使用PHP来读取、解析和操作XML文档,帮助初学者更好地理解和应用这两种技术。 首先,理解XML的基本结构至关重要。XML文件由一系列元素组成,每个元素都有可能包含子元素、属性和文本内容。例如: ...

    Java操作XML编程实例解析.doc

    在这个实例中,JAXP的`javax.xml.parsers.DocumentBuilderFactory`和`DocumentBuilder`用于解析XML文件,构建DOM树。 4. **Bean类**:在Java中,Bean是一种符合特定设计模式的简单Java对象,通常用于数据封装。在...

    java解析xml实例

    在Java中,解析XML文件是常见的任务,主要用于读取、修改或生成XML文档。本篇将深入探讨两种主要的XML解析技术:DOM(Document Object Model)和SAX(Simple API for XML)。 DOM解析器将整个XML文档加载到内存中,...

    PB11.5解析XML实例

    在“PB11.5解析XML实例”中,我们将深入探讨如何利用PowerBuilder的内置功能来解析XML文档。首先,我们需要了解PowerBuilder中的XML解析器,这是PB11.5中处理XML的关键组件。PB11.5提供了两种主要的XML解析方式:DOM...

    xml航班解析实例

    本实例——“xml航班解析实例”,提供了一个全项目的压缩包,包含了源代码和注释,方便个人学习和理解XML解析在安卓应用中的具体应用。 在安卓应用中,XML解析主要分为两种方式:DOM(Document Object Model)解析...

    java dom 解析 xml 实例

    Java DOM 解析 XML 实例 Java DOM 解析 XML 实例是 Java 语言中常用的 XML 解析方法之一,使用 W3C 推荐的文档对象模型(Document Object Model,DOM)来解析 XML 文档。DOM 提供了一个树形结构的对象模型,通过...

    XML实例集 XML实例集

    XML实例集是为了帮助理解XML的基本结构、语法以及在实际应用中的使用方式。 在XML实例集中,你可以看到各种类型的XML文件示例,比如CD目录、植物目录和菜单等。这些例子展示了XML如何用于组织和存储结构化数据。...

    DOM解析xml文件实例讲解

    本篇文章将深入探讨DOM解析XML文件在Android中的应用实例。 首先,DOM解析的基本思想是将整个XML文件加载到内存中,形成一个树形结构,即DOM树。这样做的优点是解析后的数据可以方便地进行任意位置的查找和修改,但...

    4种解析XML方法实例

    本教程将详细介绍四种常见的XML解析方法,以帮助你更好地理解和处理XML数据。 1. DOM解析器(Document Object Model) DOM解析器将整个XML文档加载到内存中,创建一个树形结构,允许开发者通过节点操作来访问和修改...

    Xml WebService完全实例解析

    【XML WebService完全实例解析】深入理解 XML WebService是一种基于开放标准(如SOAP、WSDL和UDDI)的服务交互技术,允许不同系统间的应用通过网络进行通信。它的核心思想是提供一个对外的接口,使得外部客户端可以...

    VTD-XML技术解析XML实例

    它是由VTD Tech公司开发的,主要用于XML的导航、解析和操作。VTD-XML技术的核心是虚拟XML索引(Virtual Token Descriptor, VTD),这种索引能够在不加载整个XML文档到内存的情况下进行快速定位和处理。 XML...

Global site tag (gtag.js) - Google Analytics