<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>select测试</title>
<script>
  <!-- js解析xml文件-->
  
function NewInfoAction()
{
 alert("进入");
var xmlDom; //XML DOM object
var xmlFile="ShareDir.xml"; //xml file name
var ieFlag="ie"; //default
//----------------------------start: create XML Dom-----------------------------------------
if (window.ActiveXObject){ //for MS IE
var axlist=new Array("MSXML2.DOMDocument.6.0","MSXML2.DOMDocument.5.0","MSXML2.DOMDocument.4.0","MSXML2.DOMDocument.3.0", "MSXML2.DOMDocument","Microsoft.XMLDOM","MSXML.DOMDocument");
for(var h=0;h<axlist.length;h++)
{
try{
xmlDom=new ActiveXObject(axlist[h]);
}catch(e){
continue;
}
if(xmlDom) break;
}
xmlDom.async=false;
xmlDom.load(xmlFile);
ieFlag="ie";
}else if(document.implementation && document.implementation.createDocument){ //other IE
xmlDom=document.implementation.createDocument("","",null);
xmlDom.async=false;
xmlDom.load(xmlFile);
ieFlag="other";
}else{
alert("Can not create XML DOM Document object in your IE.\nMaybe use Microsoft or FireFox or Netscape IE will better.");
}
//----------------------------End: create XML Dom-----------------------------------------
//----------------------------start: read XML Dom-----------------------------------------
var strHTML="";
var aID,aPic,aHref,aText; if(ieFlag=="ie"){ //MS IE
var newsList1=xmlDom.documentElement.getElementsByTagName("Item");
for(var i=0;i<newsList1.length;i++){
try{
aID=newsList1[i].childNodes[0].text;
aPath=newsList1[i].childNodes[1].text;
aName=newsList1[i].childNodes[2].text;
aType=newsList1[i].childNodes[3].text;
aSize=newsList1[i].childNodes[4].text;
//strHTML+='<option id="'+aID+'" rel="'+aPath+'" title="'+aType+'" href="'+aName+'">'+aType+'</option>';
strHTML+='<option id="'+aID+'" value="'+aType+'"><a href="'+aPath+'">'+aName+'</a></option><br>';
alert(strHTML);
}
catch(e)
{
alert("解析错误!"); 
}
}
}
//  alert("进入FF解析");
if(ieFlag=="other"){//NOT MS IE
var newsList2=xmlDom.getElementsByTagName("Item");
//alert("开始解析xml")
for(var j=0;j<newsList2.length;j++){
try{

// <option id="a2" value="shuxue"><a href="#">数学</a></option>
aID=newsList2[j].getElementsByTagName("Id")[0].childNodes[0].nodeValue;
aPath=newsList2[j].getElementsByTagName("Path")[0].childNodes[0].nodeValue;
aName=newsList2[j].getElementsByTagName("Name")[0].childNodes[0].nodeValue;
aType=newsList2[j].getElementsByTagName("Type")[0].childNodes[0].nodeValue;
aSize=newsList2[j].getElementsByTagName("Size")[0].childNodes[0].nodeValue;
// alert(aID);
// strHTML+='<option id="'+aID+'" rel="'+aPath+'" title="'+aType+'" href="'+aName+'">'+aType+'</option>';
strHTML+='<option id="'+aID+'" value="'+aType+'"><a href="'+aPath+'">'+aName+'</a></option><br>';
//alert(aID);
}catch(e2)
{
alert("解析错误!");
}
}
//alert("for的长度"+newsList2.length);
}
document.getElementById("textDiv").innerHTML=strHTML;
//----------------------------end: read XML Dom-------------------------------------------
}
  <!-- js解析xml文件-->
</script>
<link href="css/select.css" type="text/css" rel="stylesheet">
<link href="css/mulu.css" type="text/css" rel="stylesheet"> </head><body onLoad="NewInfoAction();">
 
      <div  class="first_left" id="tt">
          <select id="textDiv" name="selectForm" size="15" style="width:200px; height:300px">
          
          </select>
         
      </div>
</body>ShareDir.xml<?xml version="1.0" encoding="utf-8" ?>
<ItemList>
<Item>
    <Id>1</Id>
    <Path>#</Path>
    <Name>曹操.mp3</Name>
    <Type>music</Type>
    <Size>3M</Size>
</Item>
<Item>
    <Id>2</Id>
    <Path>#</Path>
    <Name>天籁.mp3</Name>
    <Type>music</Type>
    <Size>3M</Size>
</Item>
<Item>
    <Id>3</Id>
    <Path>#</Path>
    <Name>朋友.mp3</Name>
    <Type>music</Type>
    <Size>3M</Size>
</Item>
<Item>
    <Id>4</Id>
    <Path>#</Path>
    <Name>英雄.mp3</Name>
    <Type>music</Type>
    <Size>3M</Size>
</Item>
<Item>
    <Id>5</Id>
    <Path>#</Path>
    <Name>神话.mp3</Name>
    <Type>music</Type>
    <Size>3M</Size>
</Item>
<Item>
    <Id>6</Id>
    <Path>#</Path>
    <Name>大富翁.mp3</Name>
    <Type>music</Type>
    <Size>3M</Size>
</Item>
</ItemList>在FF下可以正常显示,但是在IE上不能正常显示怎么回事,搞不清楚,而且我也能打印出来,但就是不能显示</html>

解决方案 »

  1.   

    修改html<html> 
    <head> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
    <title>select测试 </title> 
    <script> 
      <!-- js解析xml文件--> 
      
    function NewInfoAction() 

    alert("进入"); 
    var xmlDom;  //XML DOM object 
    var xmlFile="ShareDir.xml"; //xml file name 
    var ieFlag="ie";  //default 
    //----------------------------start: create XML Dom----------------------------------------- 
    if (window.ActiveXObject){ //for MS IE 
    var axlist=new Array("MSXML2.DOMDocument.6.0","MSXML2.DOMDocument.5.0","MSXML2.DOMDocument.4.0","MSXML2.DOMDocument.3.0",  "MSXML2.DOMDocument","Microsoft.XMLDOM","MSXML.DOMDocument"); 
    for(var h=0;h <axlist.length;h++) 

    try{ 
    xmlDom=new ActiveXObject(axlist[h]); 
    }catch(e){ 
    continue; 

    if(xmlDom) break;

    xmlDom.async=false;
    xmlDom.load(xmlFile);
    ieFlag="ie"; 
    }else if(document.implementation && document.implementation.createDocument){ //other IE 
    xmlDom=document.implementation.createDocument("","",null);
    xmlDom.async=false;
    xmlDom.load(xmlFile); 
    ieFlag="other"; 
    }else{ 
    alert("Can not create XML DOM Document object in your IE.\nMaybe use Microsoft or FireFox or Netscape IE will better."); 

    //----------------------------End: create XML Dom----------------------------------------- 
    //----------------------------start: read XML Dom----------------------------------------- 
    var strHTML=""; 
    var aID,aPic,aHref,aText; if(ieFlag=="ie"){ //MS IE 
    var newsList1=xmlDom.documentElement.getElementsByTagName("Item");
    for(var i=0;i <newsList1.length;i++){ 
    try{ 
    aID=newsList1[i].childNodes[0].text; 
    aPath=newsList1[i].childNodes[1].text; 
    aName=newsList1[i].childNodes[2].text; 
    aType=newsList1[i].childNodes[3].text; 
    aSize=newsList1[i].childNodes[4].text; 
    //strHTML+=' <option id="'+aID+'" rel="'+aPath+'" title="'+aType+'" href="'+aName+'">'+aType+' </option>'; 
    strHTML+=' <option id="'+aID+'" value="'+aType+'"> <a href="'+aPath+'">'+aName+' </a> </option> <br>'; 
    alert(strHTML); 

    catch(e) 

    alert("解析错误!"); 



    //  alert("进入FF解析"); 
    if(ieFlag=="other"){//NOT MS IE 
    var newsList2=xmlDom.getElementsByTagName("Item"); 
    //alert("开始解析xml")
    for(var j=0;j <newsList2.length;j++){ 
    try{ //  <option id="a2" value="shuxue"> <a href="#">数学 </a> </option> 
    aID=newsList2[j].getElementsByTagName("Id")[0].childNodes[0].nodeValue; 
    aPath=newsList2[j].getElementsByTagName("Path")[0].childNodes[0].nodeValue; 
    aName=newsList2[j].getElementsByTagName("Name")[0].childNodes[0].nodeValue; 
    aType=newsList2[j].getElementsByTagName("Type")[0].childNodes[0].nodeValue; 
    aSize=newsList2[j].getElementsByTagName("Size")[0].childNodes[0].nodeValue; 
    // alert(aID); 
    // strHTML+=' <option id="'+aID+'" rel="'+aPath+'" title="'+aType+'" href="'+aName+'">'+aType+' </option>'; 
    strHTML+=' <option id="'+aID+'" value="'+aType+'"> <a href="'+aPath+'">'+aName+' </a> </option> <br>'; 
    //alert(aID); 
    }catch(e2) 

    alert("解析错误!"); 


    //alert("for的长度"+newsList2.length); 
    }
    document.getElementById("textDiv").innerHTML=strHTML;
    if(document.all) document.getElementById("textDiv").outerHTML=document.getElementById("textDiv").outerHTML;
    //
    //----------------------------end: read XML Dom------------------------------------------- 

      <!-- js解析xml文件--> 
    </script> 
    <link href="css/select.css" type="text/css" rel="stylesheet"> 
    <link href="css/mulu.css" type="text/css" rel="stylesheet"> </head> <body onLoad="NewInfoAction();">       <div  class="first_left" id="tt"> 
              <select id="textDiv" name="selectForm" size="15" style="width:200px; height:300px"> 
              
              </select> 
            
          </div> 
    </body> 
      

  2.   

    把那条赋值语句改下:
        document.getElementById("textDiv").parentNode.innerHTML = '<select id="textDiv" name="selectForm" size="15" style="width:200px; height:300px">' + strHTML + '</select>';