在FF浏览器里使用XMLDOM
var xmldom = document.implementation.createDocument("", "" null);
其余的操作与IE里的XMLDOM类同

解决方案 »

  1.   

    感谢楼上的,数据能不能给点例子
    如将下列的
    <?xml version="1.0" encoding="gb2312"?>
    <Ring>
     <Data id="1" author="周洁伦" price="2" file="1.wma" >功夫</Data>
     <Data id="2" author="周洁伦" price="1.5"  file="2.mp3">夜曲</Data>
     <Data id="3" author="周洁伦" price="2" file="3.wma">发如雪</Data>
     <Data id="4" author="王力宏" price="2" file="4.wma">大城小爱</Data>
     <Data id="5" author="林俊杰" price="2" file="5.wma">曹操</Data>
     <Data id="6" author="张韶涵" price="2"  file="6.wma">香水百合</Data>
     <Data id="7" author="张靓颖" price="2" file="7.wma">天下无双</Data>
     <Data id="8" author="王力宏" price="2" file="8.wma">花田错</Data>
     <Data id="9" author="王心凌" price="2" file="9.wma">睫毛弯弯</Data>
     <Data id="10" author="金海心" price="2" file="10.wma">阳光下的星星</Data>
     
     </Ring>
    数据如何解析在ie中用
    root = doc.documentElement;
    for(var i=0;i<root.childNodes.length;i++)
    {
    file = root.childNodes[postion].getAttribute("file")
    caption = root.childNodes[postion].text
    }
    FireFox中应该写?
      

  2.   

    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function MzXmlDocument()
    {
      if(document.implementation&&document.implementation.createDocument)
      {
        var doc=document.implementation.createDocument("","",null);
        doc.addEventListener("load",function(e){this.readyState=4;},false);
        doc.readyState=4; return doc;
      }
      else
      {
        var msxmls=["MSXML2","Microsoft","MSXML","MSXML3"];
        for(var i=0;i<msxmls.length;i++)
          try{return new ActiveXObject(msxmls[i]+'.DomDocument')}catch(e){}
        throw new Error("Could not find an installed XML parser!");
      }
    }var x = new MzXmlDocument();
    x.async = false;
    x.load("test.xml");
    var root = x.documentElement;
    for(var i=0;i<root.childNodes.length;i++)
    {
        if(root.childNodes[i].nodeType==1)
        {
            var file = root.childNodes[i].getAttribute("file");
            caption = root.childNodes[i].childNodes[0].nodeValue;
            alert(file +"\n"+ caption);
        }
    }
    //-->
    </SCRIPT>
      

  3.   

    太感谢meizz了, 为什么 要做一次  if(root.childNodes[i].nodeType==1)
    我是想做分页,每页的相对位置照这样的话可能是不固定?应该怎么解决.
      

  4.   

    IE 与 FF 取的 childNodes 的集合是不相同的,你自己可以 alert(root.childNodes.length) 看看长度的不同,因为在FF里text也被认为是一个 node,因此我只好用 nodeType 滤掉这些不必要的东西了。
      

  5.   

    function getNodeValue( aoXml, asTagName , aiIndex ) {
    try {
    return aoXml.getElementsByTagName(asTagName)[aiIndex].firstChild.nodeValue;
    } catch ( e ) {
    return "";
    }
    }function getNodeLen( aoXml, asTagName ) {
    try {
    return aoXml.getElementsByTagName( asTagName ).length ;
    } catch( e ) {
    return 0 ;
    }
    }闲耘用以上方法
    似乎可以在 IE6.0, firefox1.0, Opera8.0 正确上正确执行
      

  6.   

    至于 getNodeValue() 方法使用 try{}catch{} 
    是由于空标签( 标签对中无数据,如:<p /> 或 <p></p> ) 会抛出异常