<?xml version="1.0" encoding="gb2312"?>

<!-- RSS generated by oioj.net on 4/16/2004 ; 感谢LeXRus提供 RSS 2.0 文档; 此文件可自由使用，但请保留此行信息 --> 
<!-- Source download URL: http://blogger.org.cn/blog/rss2.asp       -->
<rss version="2.0">

<channel>
<title>myali88的博客</title>
<link>http://blogger.org.cn/blog/blog.asp?name=myali88</link>
<description>myali88的博客</description>
<copyright>blogger.org.cn</copyright>
<generator>W3CHINA Blog</generator>
<webMaster>webmaster@blogger.org.cn</webMaster>
<item>
<title><![CDATA[使用javascript+xml实现分页]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=myali88&amp;id=166</link>
<author>myali88</author>
<pubDate>2004/11/7 20:43:55</pubDate>
<description><![CDATA[
<P>基于web的技术中，分页是一个老的不能再老的，但大家津津乐道的问题，随着xml技术的日渐应用，把xml应用到分页当中，也是一种可能，当然网上的教程很多，当我都是看得稀里糊涂，索性自己写一个，与大家分享、指正。<BR>共有两个文件tmh.htm &amp; tt.xml<BR>源代码如下：<BR>tmh.htm<BR>___________________________________________________<BR>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&gt;<BR>&lt;HTML&gt;<BR>&lt;HEAD&gt;<BR>&lt;TITLE&gt; New Document &lt;/TITLE&gt;<BR>&lt;META NAME="Generator" CONTENT="EditPlus"&gt;<BR>&lt;META NAME="Author" CONTENT=""&gt;<BR>&lt;META NAME="Keywords" CONTENT=""&gt;<BR>&lt;META NAME="Description" CONTENT=""&gt;<BR>&lt;link rel="stylesheet" href="../website.css" type="text/css"&gt;<BR>&lt;/HEAD&gt;<BR>&lt;BODY&gt;<BR><BR>&lt;script language="javascript"&gt; <BR>//****************变量相关定义**************<BR>//*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;author:海仔&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<BR>//*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Email:rautinee@21cn.com&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<BR>//*本程序可自由传播使用，但请务必保留此信息&nbsp;&nbsp;&nbsp;&nbsp;*<BR>//****************************************<BR>var pagenum=4; //每页显示几条信息 <BR>var page=0 ;<BR>var contpage ;<BR>var BodyText="";<BR>var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");<BR>var mode="member";<BR>var toolBar;<BR>xmlDoc.async="false" <BR>xmlDoc.load("tt.xml")<BR>//***************这个地方是你根据实际取得的字段名称来改了<BR>header="&lt;TABLE border=1&gt;&lt;tr&gt;&lt;td&gt;姓名&lt;/td&gt;&lt;td&gt;图标&lt;/td&gt;&lt;td&gt;IP地址&lt;/td&gt;&lt;td&gt;email&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;日期&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;";<BR><BR>//检索的记录数<BR>maxNum = xmlDoc.getElementsByTagName(mode).length<BR>&nbsp;&nbsp;&nbsp;&nbsp;//每条记录的列数<BR>&nbsp;&nbsp;&nbsp;&nbsp;column=xmlDoc.getElementsByTagName(mode).item(0).childNodes<BR>&nbsp;&nbsp;&nbsp;&nbsp;//每条记录的列数<BR>&nbsp;&nbsp;&nbsp;&nbsp;colNum=column.length<BR>&nbsp;&nbsp;&nbsp;&nbsp;//页数<BR>&nbsp;&nbsp;&nbsp;&nbsp;pagesNumber=Math.ceil(maxNum/pagenum)-1; <BR>&nbsp;&nbsp;&nbsp;&nbsp;pagesNumber2=Math.ceil(maxNum/pagenum); <BR>//上一个页面<BR>function UpPage(page)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;thePage="前一页";<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(page+1&gt;1) thePage="&lt;A HREF='#' onclick='Javascript:return UpPageGo()'&gt;前一页&lt;/A&gt;";<BR>&nbsp;&nbsp;&nbsp;&nbsp;return thePage;<BR>}<BR>function NextPage(page)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;thePage="后一页";<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(page&lt;pagesNumber) thePage="&lt;A HREF='#' onclick='Javascript:return NextPageGo()'&gt;后一页&lt;/A&gt;";<BR>&nbsp;&nbsp;&nbsp;&nbsp;return thePage;<BR>}<BR><BR>function UpPageGo(){ <BR><BR>if(page&gt;0) page--; <BR>&nbsp;&nbsp;&nbsp;&nbsp;getContent(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;BodyText=""; <BR><BR>} <BR>//当前的页数<BR>function currentPage()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;var cp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;cp="当前是第 "+(page+1)+" 页";<BR>&nbsp;&nbsp;&nbsp;&nbsp;return cp;<BR>}<BR>//总共的页数<BR>function allPage()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;var ap;<BR>&nbsp;&nbsp;&nbsp;&nbsp;ap='总共 '+(pagesNumber+1)+' 页';<BR>&nbsp;&nbsp;&nbsp;&nbsp;return ap<BR>}<BR>function NextPageGo()<BR>{ <BR>if (page&lt;pagesNumber) page++;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;getContent(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;BodyText="";<BR>} <BR><BR>//显示分页状态栏<BR>function pageBar(page)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;var pb;<BR>&nbsp;&nbsp;&nbsp;&nbsp;pb=UpPage(page)+"&nbsp;&nbsp;"+NextPage(page)+"&nbsp;&nbsp;"+currentPage()+"&nbsp;&nbsp;"+allPage()+selectPage();<BR>&nbsp;&nbsp;&nbsp;&nbsp;return pb;<BR>}<BR>function changePage(tpage)<BR>{&nbsp;&nbsp;&nbsp;&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;page=tpage<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(page&gt;=0) page--; <BR>&nbsp;&nbsp;&nbsp;&nbsp;if (page&lt;pagesNumber) page++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;getContent(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;BodyText="";<BR>}<BR>function selectPage()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;var sp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;sp="&lt;select name='hehe' onChange='javascript:changePage(this.options[this.selectedIndex].value)'&gt;";<BR>&nbsp;&nbsp;&nbsp;&nbsp;//sp="&lt;select name='hehe' onChange='alert(this.options[this.selectedIndex].value)'&gt;";<BR>&nbsp;&nbsp;&nbsp;&nbsp;sp=sp+"&lt;option value=''&gt;&lt;/option&gt;";<BR>&nbsp;&nbsp;&nbsp;&nbsp;for (t=0;t&lt;=pagesNumber;t++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sp=sp+"&lt;option value='"+t+"'&gt;"+(t+1)+"&lt;/option&gt;";<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;sp=sp+"&lt;/select&gt;"<BR>&nbsp;&nbsp;&nbsp;&nbsp;return sp;<BR>}<BR><BR>function getContent()<BR>{<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!page) page=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n=page*pagenum;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;endNum=(page+1)*pagenum;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (endNum&gt;maxNum) endNum=maxNum;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BodyText=header+BodyText;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (;n&lt;endNum;n++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BodyText=BodyText+"&lt;TR&gt;";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (m=0;m&lt;=colNum-1;m++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mName=column.item(m).tagName;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BodyText=BodyText+("&lt;TD&gt;"+xmlDoc.getElementsByTagName(mName).item(n).text+"&lt;/TD&gt;");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BodyText=BodyText+"&lt;/TR&gt;"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mm="";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;showhtml.innerHTML=BodyText+"&lt;/table&gt;"+pageBar(page); <BR><BR>BodyText=""<BR>}<BR>&lt;/script&gt; <BR><BR>&lt;div id="showhtml"&gt;&lt;/div&gt;<BR>&lt;script&gt;<BR>if (maxNum==0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.write("没有检索到合适的人才信息")<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getContent()<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&lt;/script&gt;<BR><BR>&lt;/BODY&gt;<BR>&lt;/HTML&gt;<BR><BR>//下面是tt.xml的代码<BR><BR><BR><BR><BR>&lt;?xml version="1.0" encoding="GB2312"?&gt;<BR>&lt;rautinee&gt;<BR><BR>&lt;member id='1'&gt; <BR>&lt;name&gt;海仔&lt;/name&gt;<BR>&lt;loginName&gt;rautinee&lt;/loginName&gt;<BR>&lt;email&gt;rautinee@btamail.net.cn&lt;/email&gt;&lt;/member&gt;<BR><BR>&lt;member id='2'&gt;<BR>&lt;name&gt;刚强&lt;/name&gt;<BR>&lt;loginName&gt;hehe&lt;/loginName&gt;<BR>&lt;email&gt;rautinee@chinamanagers.com&lt;/email&gt;&lt;/member&gt;<BR><BR>&lt;member id='3'&gt;<BR>&lt;name&gt;金华刚&lt;/name&gt;<BR>&lt;loginName&gt;nature_it&lt;/loginName&gt;<BR>&lt;email&gt;rautinee_sea@hotmail.com&lt;/email&gt;&lt;/member&gt;<BR><BR>&lt;member id='4'&gt;<BR>&lt;name&gt;的简强&lt;/name&gt;<BR>&lt;loginName&gt;tank&lt;/loginName&gt;<BR>&lt;email&gt;tank@163.com&lt;/email&gt;&lt;/member&gt;<BR><BR>&lt;member id='7'&gt;<BR>&lt;name&gt;合资&lt;/name&gt;<BR>&lt;loginName&gt;kaka&lt;/loginName&gt;<BR>&lt;email&gt;kaka@eyou.com&lt;/email&gt;&lt;/member&gt;<BR><BR>&lt;member id='6'&gt;<BR>&lt;name&gt;加个人&lt;/name&gt;<BR>&lt;loginName&gt;apple&lt;/loginName&gt;<BR>&lt;email&gt;apple@163.com&lt;/email&gt;&lt;/member&gt;<BR><BR>&lt;member id='8'&gt;<BR>&lt;name&gt;null&lt;/name&gt;<BR>&lt;loginName&gt;sunny&lt;/loginName&gt;<BR>&lt;email&gt;rautinee@eyou.com&lt;/email&gt;&lt;/member&gt;<BR><BR>&lt;member id='10'&gt;<BR>&lt;name&gt;宝贝&lt;/name&gt;<BR>&lt;loginName&gt;index&lt;/loginName&gt;<BR>&lt;email&gt;rautinee@21cn.com&lt;/email&gt;&lt;/member&gt;<BR><BR>&lt;member id='12'&gt;<BR>&lt;name&gt;null&lt;/name&gt;<BR>&lt;loginName&gt;login&lt;/loginName&gt;<BR>&lt;email&gt;webmaster@chinamanagers.com&lt;/email&gt;&lt;/member&gt;<BR><BR>&lt;member id='13'&gt;<BR>&lt;name&gt;jiang&lt;/name&gt;<BR>&lt;loginName&gt;123&lt;/loginName&gt;<BR>&lt;email&gt;japing@chianmanagers.com&lt;/email&gt;&lt;/member&gt;<BR><BR>&lt;member id='14'&gt;<BR>&lt;name&gt;null&lt;/name&gt;<BR>&lt;loginName&gt;world&lt;/loginName&gt;<BR>&lt;email&gt;rautinee@21cn.com&lt;/email&gt;&lt;/member&gt;<BR><BR>&lt;member id='15'&gt;<BR>&lt;name&gt;null&lt;/name&gt;<BR>&lt;loginName&gt;swallow&lt;/loginName&gt;<BR>&lt;email&gt;swallow@chinamanagers.com&lt;/email&gt;&lt;/member&gt;<BR><BR>&lt;member id='16'&gt;<BR>&lt;name&gt;魏格&lt;/name&gt;<BR>&lt;loginName&gt;hotmail&lt;/loginName&gt;<BR>&lt;email&gt;rautinee_sea@hotmail.com&lt;/email&gt;&lt;/member&gt;<BR><BR>&lt;member id='17'&gt;<BR>&lt;name&gt;null&lt;/name&gt;<BR>&lt;loginName&gt;wrong&lt;/loginName&gt;<BR>&lt;email&gt;wrong@chinamanagers.com&lt;/email&gt;&lt;/member&gt;<BR><BR>&lt;member id='18'&gt;<BR>&lt;name&gt;null&lt;/name&gt;<BR>&lt;loginName&gt;leah&lt;/loginName&gt;<BR>&lt;email&gt;leah@chinamanagers.com&lt;/email&gt;&lt;/member&gt;<BR><BR>&lt;member id='19'&gt;<BR>&lt;name&gt;null&lt;/name&gt;<BR>&lt;loginName&gt;ttth&lt;/loginName&gt;<BR>&lt;email&gt;rautinee@21cn.com&lt;/email&gt;&lt;/member&gt;<BR><BR>&lt;/rautinee&gt;<BR>目前好像是只支持&gt;IE5.0<BR>如果你有什么好的方法和改进，请来信通知我，谢谢。<BR><BR>ok ,just enjoy it ,and good luck</P>]]></description>
</item><item>
<title><![CDATA[Javascript 调用XML制作连动下拉框]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=myali88&amp;id=165</link>
<author>myali88</author>
<pubDate>2004/11/7 20:39:44</pubDate>
<description><![CDATA[
<P>传统的HTML页面中连动下拉框采用了两种方法：<BR>1）直接将下拉框中的内容hardcode于html的javascript中，调用javascript函数循环写入下拉框中。这种方法不适用于下拉框内容经常改变的情况。因为数据源和javascript程序写死在同一页面。<BR>&nbsp;&nbsp; <BR>&lt;html&gt;<BR>&lt;head&gt;<BR>&lt;title&gt;List&lt;/title&gt;<BR>&lt;meta http-equiv="Content-Type" content="text/html; c<BR>harset=gb2312"&gt;<BR>&lt;script LANGUAGE="javascript"&gt;<BR>&lt;!--<BR>var onecount;<BR>onecount=0;</P>
<P>subcat = new Array();<BR>subcat[0] = new Array("徐汇区","01","001");<BR>subcat[1] = new Array("嘉定区","01","002");<BR>subcat[2] = new Array("黄浦区","01","003");<BR>subcat[3] = new Array("南昌市","02","004");<BR>subcat[4] = new Array("九江市","02","005");<BR>subcat[5] = new Array("上饶市","02","006");</P>
<P>onecount=6;</P>
<P>function changelocation(locationid)<BR>{<BR>document.myform.smalllocation.length = 0;</P>
<P>var locationid=locationid;<BR>var i;<BR>document.myform.smalllocation.options[0] = new Option('====所有地区====','');<BR>for (i=0;i &lt;onecount; i++)<BR>{<BR>if (subcat[i][1] == locationid)<BR>{<BR>document.myform.smalllocation.options[document.myform.smalllocation.length]<BR>= new Option(subcat[i][0], subcat[i][2]);<BR>}<BR>}</P>
<P>}</P>
<P>//--&gt;<BR>&lt;/script&gt;<BR>&lt;/head&gt;<BR>&lt;body&gt;<BR>&lt;form name="myform" method="post"&gt;<BR>&lt;select name="biglocation"<BR>onChange="changelocation(document.myform.biglocation.options[document.myform.biglocation.selectedIndex].value)"&gt;<BR>&lt;option value="01" selected&gt;上海&lt;/option&gt;<BR>&lt;option value="02"&gt;江西&lt;/option&gt;<BR>&lt;/select&gt;<BR>&lt;select name="smalllocation"&gt;<BR>&lt;option selected value=""&gt;==所有地区==&lt;/option&gt;<BR>&lt;/select&gt;<BR>&lt;/form&gt;<BR>&lt;script LANGUAGE="javascript"&gt;<BR>&lt;!--<BR>changelocation(document.myform.biglocation.options[document.myform.biglocation.selectedIndex].value);<BR>//--&gt;<BR>&lt;/script&gt;<BR>&lt;/body&gt;<BR>&lt;/html&gt;</P>
<P><BR>2）javascript 直接读取数据库，取数据库中的记录写入javascript中，然后和第一种方法一样，调用javascript函数循环写入下拉框中。此方法将数据源与javascript分开，但,公开数据库的连接，从安全角度说，没有多少实用价值。</P>
<P><BR>我的方法是将下拉框中的数据放在XML文件中，用javascript读XML文件，取得下拉框中的内容。</P>
<P>HTML 文件如下：<BR>&lt;!-- myfile.html --&gt;</P>
<P>&lt;html&gt;<BR>&lt;head&gt;<BR>&lt;script language="JavaScript" for="window" event="onload"&gt;<BR>var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");<BR>var i=0;<BR>var j=0;<BR>var subclass_name="";<BR>loadXML();<BR>function loadXML(){<BR>xmlDoc.async="false";<BR>xmlDoc.load("account.xml");<BR>xmlObj=xmlDoc.documentElement; <BR>nodes = xmlDoc.documentElement.childNodes;<BR>document.frm.mainclass.options.length = 0; <BR>document.frm.subclass.options.length = 0;</P>
<P>for (i=0;i&lt;xmlObj.childNodes.length;i++){<BR>labels=xmlObj.childNodes(i).getAttribute("display_name");<BR>values=xmlObj.childNodes(i).text;<BR>document.frm.mainclass.add(document.createElement("OPTION"));<BR>document.frm.mainclass.options[i].text=labels; <BR>document.frm.mainclass.options[i].value=values; </P>
<P>}</P>
<P>}</P>
<P><BR>&lt;/script&gt;</P>
<P>&lt;script language="JavaScript" &gt;<BR>var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");<BR>var i=0;<BR>var j=0;</P>
<P>function deleteOption() {<BR>&nbsp;&nbsp;&nbsp; <BR>}</P>
<P>function setsubclass(main){<BR>var is_selected="N";<BR>if (document.frm.subclass.options.length!=0) { <BR>for (i=0;i&lt;=document.frm.subclass.options.length;i++)<BR>document.frm.subclass.options[i]=null ;<BR>}<BR>//重复才有效<BR>if (document.frm.subclass.options.length!=0) { <BR>for (i=0;i&lt;=document.frm.subclass.options.length;i++){<BR>document.frm.subclass.options[i]=null ;<BR>document.frm.subclass.options.remove(i);<BR>}<BR>}</P>
<P><BR>for (i=0;i&lt;xmlObj.childNodes.length;i++){</P>
<P>var values="";<BR>var lables="";</P>
<P>if (is_selected=="Y") return;<BR>labels=xmlObj.childNodes(i).getAttribute("display_name");<BR>values=xmlObj.childNodes(i).text;<BR>//alert(labels+ " | "+main);<BR>if (labels==main){</P>
<P>is_selected="Y";</P>
<P>for (j=0;j&lt;xmlObj.childNodes(i).childNodes.length;j++){<BR>//subclass_name="document.frm.subclass";<BR>labels=xmlObj.childNodes(i).childNodes(j).getAttribute("display_name");<BR>values=xmlObj.childNodes(i).childNodes(j).text;<BR>//alert(values); <BR>document.frm.subclass.add(document.createElement("OPTION"));<BR>document.frm.subclass.options[j].text=labels; <BR>document.frm.subclass.options[j].value=values; </P>
<P>}</P>
<P>}</P>
<P>}<BR>}<BR>&lt;/script&gt;</P>
<P>&lt;title&gt;在HTML中调用XML数据&lt;/title&gt;<BR>&lt;/head&gt;<BR>&lt;body bgcolor="#FFFFFF"&gt;<BR>&lt;FORM NAME="frm"&gt; <BR>类型&lt;SELECT NAME="mainclass" OnChange='setsubclass(this[selectedIndex].text)'&gt;&lt;/SELECT&gt;<BR>&lt;option selected value=""&nbsp; &gt;&lt;/option&gt;<BR>子类&lt;SELECT NAME="subclass"&gt;&lt;/SELECT&gt;<BR>&lt;/form&gt;<BR>&lt;/body&gt;<BR>&lt;/html&gt;</P>
<P>account.xml 如下：</P>
<P><BR>&lt;?xml version="1.0" encoding="GB2312"?&gt;</P>
<P>&lt;item&gt;<BR>&lt;class display_name="未选定"&gt;<BR>&lt;subclass display_name=""&gt;Not Available&lt;/subclass&gt; <BR>&lt;/class&gt;<BR>&lt;class display_name="95788主叫卡"&gt;<BR>&lt;subclass display_name="1152069589-1152069638"&gt;dangdang1&lt;/subclass&gt; <BR>&lt;subclass display_name="1152081031-1152081080"&gt;dangdang2&lt;/subclass&gt;<BR>&lt;subclass display_name="1152547201-1105254750"&gt;dangdang3&lt;/subclass&gt;<BR>&lt;subclass display_name="1152548401-1152548700"&gt;dangdang4&lt;/subclass&gt;<BR>&lt;subclass display_name="1152548701-1152549000"&gt;dangdang5&lt;/subclass&gt;<BR>&lt;subclass display_name="1156000001-1156010000"&gt;dangdang6&lt;/subclass&gt;<BR>&lt;/class&gt;<BR>&lt;class display_name="网上注册"&gt;<BR>&lt;subclass display_name="1152000001-1152001000"&gt;zhuce_user1&lt;/subclass&gt; <BR>&lt;subclass display_name="1151001000-1151005000"&gt;zhuce_user2&lt;/subclass&gt;<BR>&lt;/class&gt;<BR>&lt;class display_name="通讯"&gt;<BR>&lt;subclass display_name="1156030001-1156080000"&gt;tongxun&lt;/subclass&gt; <BR>&lt;/class&gt;</P>
<P>&lt;/item&gt;</P>
<P>此方法将数据源与javascript程序分开，适合经常变化的数据源。xmlDoc.load中可以直接调用URL参数,读取远程XML，实现松耦合。以上应用在IE6.0中通过。不足之处是在去除下拉框列表内容时需要<BR>重复执行删除操作，否则会有明显的bug.希望有读者能给指正。<BR></P>]]></description>
</item>
</channel>
</rss>