js 查询XML数据添加到HTML select控件

code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>在HTML中调用XML数据(javascript read xml add select html control)</title>
<script type="text/javascript" language="javascript" for="window" event="onload">
<!--
   var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
   var i = 0;
   var j = 0;
   var subclass_name = "";
   loadXML();
   function loadXML(){
     xmlDoc.async = "false";
     xmlDoc.load("account.xml");
     xmlObj = xmlDoc.documentElement;
     nodes = xmlDoc.documentElement.childNodes;
     document.frm.mainclass.options.length = 0;
     document.frm.subclass.options.length = 0;
     for(i=0;i<xmlObj.childNodes.length;i++)
     {
       var labels = xmlObj.childNodes(i).getAttribute("display_name");
       var values = xmlObj.childNodes(i).text;
       document.frm.mainclass.add(document.createElement("OPTION"));
	   document.frm.mainclass.options[i].text=labels; 
	   document.frm.mainclass.options[i].value=values; 

     }
   }
   //-->
</script>
<script language="javascript" type="text/javascript" >
	var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
	var i=0;
	var j=0;

	function deleteOption() {
	    
	}

	function setsubclass(main){
		var is_selected="N";
			if (document.frm.subclass.options.length!=0) { 
			for (i=0;i<=document.frm.subclass.options.length;i++)
			document.frm.subclass.options[i]=null ;
			}
		//重复才有效
		if (document.frm.subclass.options.length!=0) { 
			for (i=0;i<=document.frm.subclass.options.length;i++){
			document.frm.subclass.options[i]=null ;
			document.frm.subclass.options.remove(i);
			}
		}

		for (i=0;i<xmlObj.childNodes.length;i++){
		
			var values="";
			var lables="";
			
			if (is_selected=="Y") return;
			labels=xmlObj.childNodes(i).getAttribute("display_name");
			values=xmlObj.childNodes(i).text;
			//alert(labels+ " | "+main);
			if (labels==main){
			
				is_selected="Y";
				
				for (j=0;j<xmlObj.childNodes(i).childNodes.length;j++){
				//subclass_name="document.frm.subclass";
				labels=xmlObj.childNodes(i).childNodes(j).getAttribute("display_name");
				values=xmlObj.childNodes(i).childNodes(j).text;
				//alert(values); 
				document.frm.subclass.add(document.createElement("OPTION"));
				document.frm.subclass.options[j].text=labels; 
				document.frm.subclass.options[j].value=values; 
				
				}
			
			}
		
		}
}
</script>

</head>

<body>
<form name="frm"> 
类型<select name="mainclass" onchange="setsubclass(this[selectedIndex].text)">
</select>
子类<select name="subclass"></select>
</form>

</body>

</html>

xmlcode:

<?xml version="1.0" encoding="GB2312"?>
<item>
<class display_name="请选定卡型">
<subclass display_name="选定卡号">Not Available</subclass> 
</class>
<class display_name="95788主叫卡">
<subclass display_name="1152069589-1152069638">dangdang1</subclass> 
<subclass display_name="1152081031-1152081080">dangdang2</subclass>
<subclass display_name="1152547201-1105254750">dangdang3</subclass>
<subclass display_name="1152548401-1152548700">dangdang4</subclass>
<subclass display_name="1152548701-1152549000">dangdang5</subclass>
<subclass display_name="1156000001-1156010000">dangdang6</subclass>
</class>
<class display_name="网上注册">
<subclass display_name="1152000001-1152001000">zhuce_user1</subclass> 
<subclass display_name="1151001000-1151005000">zhuce_user2</subclass>
</class>
<class display_name="通讯">
<subclass display_name="1156030001-1156080000">tongxun</subclass> 
</class>
</item>


原文地址:https://www.cnblogs.com/Leo_wl/p/1803310.html