xml结构如下--名字1
----属性1
----超级链接1
----属性2
----超级链接2
----属性3
----超级链接3
----.....
--名字2
----属性1
----超级链接1
----属性2
----超级链接2
----属性3
----超级链接3
----.....
javascript读取后,生成select下拉菜单两个,第一个显示名字一,第二个菜单显示所有属性,选择一个属性后,提交表单跳转到属性对应的超级连接页面
谢谢!
----属性1
----超级链接1
----属性2
----超级链接2
----属性3
----超级链接3
----.....
--名字2
----属性1
----超级链接1
----属性2
----超级链接2
----属性3
----超级链接3
----.....
javascript读取后,生成select下拉菜单两个,第一个显示名字一,第二个菜单显示所有属性,选择一个属性后,提交表单跳转到属性对应的超级连接页面
谢谢!
http://www.google.com/search?q=javascript+xml+%E8%81%94%E5%8A%A8&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:zh-CN:official&client=firefox-a
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<HTML xmlns="http://www.w3.org/1999/xhtml">
<HEAD>
<TITLE> New Document </TITLE>
<META. NAME="Generator" CONTENT="EditPlus">
<META. NAME="Author" CONTENT="">
<META. NAME="Keywords" CONTENT="">
<META. NAME="Description" CONTENT="">
<script. type='text/javascript'>
loadXML = function(xmlFile){
var xmlDoc;
//判断浏览器的类型
//支持IE浏览器
if(window.ActiveXObject){
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.load(xmlFile);
}
//支持Mozilla浏览器
else if(document.implementation && document.implementation.createDocument){
xmlDoc = document.implementation.createDocument('','',null);
xmlDoc.async = false;
xmlDoc.load(xmlFile);
}
else{
return null;
}
return xmlDoc;
}
//对xml对象进行判断
checkXMLDocObj = function(xmlFile){
var xmlDoc = loadXML(xmlFile);
if(xmlDoc==null){
alert('您的浏览器不支持xml文件读取,于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!');
//window.location.href='某某地址(比如首页)';
}
return xmlDoc;
}
//参数1:控件id号,参数2:理解为定位节点
initializeSelect = function(oid,xPath){
var xmlDoc = checkXMLDocObj('sqlInfo.xml');
var n;
var l;
var e = document.getElementById(oid);//得到下拉列表框控件
if(e!=null){
n = xmlDoc.getElementsByTagName(xPath);
l = n.length;
//循环添加列表子项
for(var i=0;i<l;i++){
var ption = document.createElement('option');
option.innerText = n[i].firstChild.text;
option.value = n[i].lastChild.text;
e.appendChild(option);
}
}
}
</script>
</HEAD>
<BODY nload="initializeSelect('company','Company')">
<select id='company' name='company'>
<option selected='selected'></option>
</select>
</BODY>
</HTML>
附上XML测试文件
Code
<?xml version="1.0" encoding="utf-8" ?>
<DongFang>
<Company>
<cNname>1</cNname>
<cIP>1</cIP>
</Company>
<Company>
<cNname>2</cNname>
<cIP>2</cIP>
</Company>
<Company>
<cNname>3</cNname>
<cIP>3</cIP>
</Company>
<Company>
<cNname>4</cNname>
<cIP>4</cIP>
</Company>
<Company>
<cNname>5</cNname>
<cIP>5</cIP>
</Company>
<Company>
<cNname>6</cNname>
<cIP>6</cIP>
</Company>
</DongFang>
2个级联就根据上一个选择的值,去xml中查询这个值对应的节点即可
<!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 http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script language="javascript">
<!--
function loademid()
{
var employeeid,employeelastname;
//清除列表框
employeecount=qform.employeelist.length
for(i=employeecount-1;i>=0;i--)
{
qform.employeelist.remove(i);
}
var XMLDoc = new ActiveXObject("Microsoft.XMLDOM");
XMLDoc.async = false;
XMLDoc.load("sel.xml");
root=XMLDoc.documentElement.childNodes;
for(i=0;i<root.length;i++)
{
getnode=root.item(i);
employeeid=root.item(i).getAttribute("emid");
for(j=0;j<getnode.childNodes.length;j++)
{
employeeinf=getnode.childNodes(j).nodeName;
if(employeeinf=="employeename")
{
employeelastname=getnode.childNodes(j).text;
}
}
//将得到的employeeid和employeelastname写进select中
if(employeeid!="" && employeelastname!="")
{
option1=document.createElement("option");
option1.text=employeelastname;
option1.value=employeeid;
qform.employeelist.add(option1);
}
}
}
function findemployee()
{
var employeelastname,employeeid;
employeelastname="";
employeeid="";
findtext=qform.textbox1.value;
//清除列表框
employeecount=qform.employeelist.length
for(i=employeecount-1;i>=0;i--)
{
qform.employeelist.remove(i);
}
var XMLDoc = new ActiveXObject("Microsoft.XMLDOM");
XMLDoc.async = false;
XMLDoc.load("sel.xml");
root=XMLDoc.documentElement.childNodes;
for(i=0;i<root.length;i++)
{
getitem=root.item(i);
employeeid=root.item(i).getAttribute("emid");
for(j=0;j<getitem.childNodes.length;j++)
{
if(getitem.childNodes(j).nodeName=="employeename")
{
employee_temp=getitem.childNodes(j).text;
if(findtext != "" && employee_temp.indexOf(findtext)!=-1)
{ //查找匹配项
employeelastname=employee_temp;
}
}
}
//将符合条件的雇员信息写进select中
if(employeeid!="" && employeelastname!="")
{
option1=document.createElement("option");
option1.value=employeeid;
option1.text=employeelastname;
qform.employeelist.add(option1);
employeeid="";
employeelastname="";
}
}
}
-->
</script>
</head>
<body onload="loademid()">
<form name="qform" method="post" action="">
<input type="button" name="Bt_ok" onclick="loademid()" value="确定" />
<select name="employeelist">
<option value="">姓名</option>
</select>
<input type="button" name="Bt_select" value="选择" onclick="findemployee()" />
<input type="button" name="Bt_Submit" value="提交" onclick="qform.textbox1.value=qform.employeelist.value" />
<input type="text" name="textbox1" value="" />
</form>
</body>
</html>
sel.xml:
<?xml version="1.0" encoding="gb2312"?>
<employee>
<employeeitem emid="1">
<employeeid>a</employeeid>
<employeename>111</employeename>
</employeeitem>
<employeeitem emid="2">
<employeeid>b</employeeid>
<employeename>222</employeename>
</employeeitem>
<employeeitem emid="3">
<employeeid>c</employeeid>
<employeename>333</employeename>
</employeeitem>
<employeeitem emid="4">
<employeeid>d</employeeid>
<employeename>444</employeename>
</employeeitem>
</employee>