function getXml(xmlUrl)
{
//变量初始化防止一直累加下去
strTableHeight = 0;
if(xmlUrl!="")
{
var objXML=new ActiveXObject("Msxml2.DOMDocument");
var strTable="";
strTable += "<table  border=0 cellpadding=0 width=100%  cellspacing=1 bgcolor=#FF9933>";
    strTable += "<tr><td height=22 bgcolor=#DDDDDD>";
strTable+="<table  id=table1 width=100% border=0 cellspacing=1 cellpadding=4>";
objXML.async=false;
objXML.load(xmlUrl)
var i  = objXML.getElementsByTagName("node").length;
var strTitle,strUrl;
for(var j=0;j<i;j++)
{
strTitle = objXML.childNodes[1].childNodes[j].childNodes[0].text;
strUrl = objXML.childNodes[1].childNodes[j].childNodes[1].text;
strTable+="<tr><td height=22  bgcolor=#F5F5F5 align=left><span> </span><a href='#' onclick=parent.openUrl('"+strUrl+"')><font size=2>"+strTitle+"</font></a></td></tr>";
//动态生成iframe的高度,供setPlace调用
strTableHeight = strTableHeight + 28;
}  
strTable+="</table>";
strTable+="</td></tr></table>";
return strTable;
}
else
{
return "";
}
}

解决方案 »

  1.   

    var objXML=new ActiveXObject("Msxml2.DOMDocument");
    objXML.async=false;
    objXML.load(xmlUrl)具体要如何取节点,你查msdn
      

  2.   

    刚学XML, 可能有些地方不妥, 请多指正:
    <xml id=meizz>
    <NewDataSet>
      <TableName>
         <TableName>xxx</TableName>
         <TableID>yyy</TableID>
      </TableName>
      <TableName>
         <TableName>33</TableName>
         <TableID>444</TableID>
      </TableName>
      <FieldName>
         <FieldName>ccc</FieldName>
         <FieldID>gggg</FieldID>
         <TableID>uuu</TableID>
      </FieldName>
    </NewDataSet>
    </xml>
    <select id=sel></select><SCRIPT LANGUAGE="JavaScript">
    var x=new ActiveXObject("Microsoft.XMLDOM");
    x.loadXML(document.all.meizz.innerHTML);
    var tabs = x.selectNodes("NewDataSet/TableName");
    for(var i=0; i<tabs.length; i++)
    {
      var txt = tabs.item(i).getElementsByTagName("TableName").item(0).text;
      var val = tabs.item(i).getElementsByTagName("TableID").item(0).text;
      var opt = new Option(txt, val, true, true);
      sel.options[sel.options.length] = opt;
    }
    x=null;
    </SCRIPT>
      

  3.   

    /************   得到xml对象  *************/
    function getXml(url)
    {
      var rootxml=new ActiveXObject("microsoft.xmldom")
      rootxml.async = false 
      rootxml.load(url)
      return rootxml
    }/************   得到xml文档对象中符合路径的节点数组  *************/
    function getXmlNode(xdoc,nodepath)
    {
      var resultnode=xdoc.selectNodes(nodepath);
      return resultnode
    }//调用部分:var xml=getXml(xml_url)
    nodes=getXmlNode(xml,"//NewDataSet/TableName")
    nodes是一个符合"//NewDataSet/TableName"路径的所有节点,是个数组对象
    建议你下面的的tableid和tablename子节点都改为属性比较好
    comboObj.length=comboObj.length
    for(i=0;i<nodes.length;i++){
       comboObj.options[i].text=nodes[0].getAttribute(id属性名)
       comboObj.options[i].value=nodes[0].getAttribute(name属性名)
       }
       
       
      

  4.   

    写错了,comboObj.length=comboObj.length改成comboObj.length=nodes.length
      

  5.   

    var objXml=new ActiveXObject("Msxml2.DomDocument");
    objXml.async=false;
    objXml.loadXML(a.xml);
    var nodeList=objXml.selectNodes("//TableName");
    if(nodeList.length==0)
    {
    return;
    }var Ooption;
    for(var i=0;i<nodeList.length;i++)

    Ooption = document.createElement("option");
    Ooption.text = nodeList.item(i).selectSingleNode("TableName").text;
    Ooption.value = NodeList.item(i).selectSingleNode("TableID").text;
    ddlProducer.add (oOption);
    }
      

  6.   

    to  haluomao(抽烟的猫)   不能改成属性,这是。NET返回的DataSet.GetXml();的字符串呀to  meizz(梅花雪)         没法用呀,报二个错
      

  7.   

    我这段代码已经测试过了呀. 我的测试环境是(IE6.0+win2K)