附两个如下用到的xml文档:javascript
a.DsoData.xml



























b.ClassData.xml















2.若是是一打开html页面就把xml看成数据源加载的话,那么就直接在代码中嵌入如下标签就能够了。
<XML id="stuData" src="DsoData.xml"></XML>html
可要记住它的id,这个id是能够自定义的,它是在javascript中操做的标示,有点相似与asp.net的服务器控件啊。java
3.若是你只想当在html中激发某个事件时才加载xml数据,那么你首先须要在html中放置一个DSO的容器,以便用来存放xml数据。数据库
<object id="ClassData" CLASSID="clsid:550dda30-0541-11d2-9ca9-0060b0ec3d39"
width="0" height="0"></object>服务器
这里这个id的意义和上面的同样。若是要加载多个xml,那么你就要放置多个这样的标签。app
4.那么在javascript中怎么加载呢?






注意这个ClassData.XMLDocument的ClassData其实是前面放置的标签<object id="ClassData" 中的id。这和asp.net的服务器控件多么像。
5.怎么把这些数据源中的数据展现到html中呢?asp.net
a.绑定到table中,请看下面的代码:分布式





















这里你们重点关注如下两个标签:
datasrc="#stuData"
datafld="name"post
一个是datasrc,它代表该table使用哪一个数据源,后面是"#stuData",这个#是一个标示,后面呢则是<XML id="stuData" 中的id,代表table用的是这个数据源。而datafld代表它绑定的是xml文档中元素名。若是遇到属性名和子元素名同样的状况,在元素名前加上“!”进行区分。ui
b.除了绑定到table中,还能够绑定到许多标签中,如A、APPLET、BUTTON、DIV、FRAME、IFRAME、 IMG、INPUT (此处类型是:CHECKBOX、HIDDEN、 LABEL、PASSWORD、RADIO和TEXT)、LABEL、 MARQUEE、SELECT、SPAN、TABLE和 TEXTAREA。
绑定的方法相似,关键是指定以上两个属性。
6.仅仅是只能绑定,确定是不够灵活的,而javascript确可让咱们灵活的展示它们。由于DSO是一个相似于recordset的对象,那么它就有:
· moveNext(): 指向后一个数据项。
· movePrevious(): 指向前一个数据项。
· moveFirst(): 指向第一个数据项。
· moveLast(): 指向最后一个数据项。
· EOF: 这个属性用来检测咱们是否已经到达数据记录的底部。
具体的操做代码以下:
var theSet = ClassData.recordset;
theSet.moveNext();
那么在html中绑定了数据的非table标签,如单独的span标签,那么就会随着moveNext而变化,在这点上,table就像asp.net中的gridView,而只绑定单值的就是detailView。这时候你一不当心,还觉得是和服务器在交互呢。
除此以外,还能使用变量对这个recordset中的值取出,如:
var theName = theSet("name");
固然你也能够经过:
document.getElementById("###").innerHTML=theSet("name");
显示到指定的位置。
还有获取记录集中的个数:
var count = theSet.RecordCount ;
7.还能够对记录集进行快速查询、排序、编辑等操做。还有对这个recordset中的记录进行增长删除修改,也是一样有效的。只是你别指望能修改xml文件,缘由就不用我讲了。这些具体操做的办法和asp中的recordset对象都是类似的。
8.对于xml+DSO,其实咱们能够把它看做是一个分布式的离线数据库,能够首先一次性从服务器端下载客户端操做所需的xml数据,而后经过DSO进行操做,这中间的业务便不须要与服务器端交互了,而是等都操做完毕了,再能够一次性提交到服务器端。这就有点像.net中的dataset了。不过这个暂时只是个人一个想法,存在的问题确定也是有的。
附:完整html中的代码
























































































