本帖最后由 lad1984 于 2011-02-10 11:01:44 编辑

解决方案 »

  1.   

    本帖最后由 net_lover 于 2011-02-10 11:31:40 编辑
      

  2.   

    另外,非IE不支持 datasrc 这样的绑定语法,最好采用js填充数据
      

  3.   

    就是说,非IE不能使用
    <xml id="myIsland" src="news.xml"></xml>
    数据岛
      

  4.   

    innerText改为innerHTML后依旧不行
      

  5.   

    关于innerHTML这个属性是IE和非IE都能支持的属性,主要考虑的是浏览器兼容性问题,这些其实不需要去研究为什么,你只要记得是这样就行了,还有很多属性各种浏览器的表现都不一样,比如自定义属性,IE可以直接使用,而非IE必须使用getAttribute(自定义属性名)才能获取,还有PNG图片的处理,事件委托等等,不单单JAVASCRIPT用法有区别,还有CSS效果上区别,具体可以参考IE和非IE浏览器区别!数据岛绑定XML数据只有IE支持,没有为什么,具体可以参考W3CSCHOOL的JAVASCRIPT学习手册,里面有介绍这个知识点!
      

  6.   

    http://files.cnblogs.com/huacn/jquery.xml.js
    上面文件提及到“只要把以上代码存成一个JS文件,在页面上引用它,当XML节点的读取操作就可以像IE一样使用了,已经通过测试。”请问,他说的”当XML节点的读取操作就可以像IE一样使用“,具体是怎样使用?
      

  7.   

    XmlhttpRequest加载xml文件,然后采用 XMLDOM 进行解析
      

  8.   

    <body>
      <script type="text/javascript">
        var xmlDoc;
        function loadXML() {
          // code for IE
          if (window.ActiveXObject) {
            xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
            xmlDoc.async = false;
            xmlDoc.load("1.xml");
            getmessage();
          }
          // code for Mozilla, Firefox, Opera, etc.
          else if (document.implementation && document.implementation.createDocument) {
            xmlDoc = document.implementation.createDocument("", "", null);
            xmlDoc.load("1.xml");
            xmlDoc.onload = getmessage;
          }
          else {
            alert('Your browser cannot handle this script');
          }
        }
        function getmessage() {
          var nodes = xmlDoc.getElementsByTagName("t1")
          tb = document.getElementById("table_note");
          tbody = document.createElement("tbody")
          for (i = 0; i < nodes.length; i++) {        tr = document.createElement("tr")
            td = document.createElement("td")
            td.innerHTML = nodes[i].getElementsByTagName("title")[0].childNodes[0].nodeValue
            tr.appendChild(td)
            td = document.createElement("td")
            td.innerHTML = nodes[i].getElementsByTagName("content")[0].childNodes[0].nodeValue
            tr.appendChild(td)
            tbody.appendChild(tr)      }
          tb.appendChild(tbody)
        }
      </script>
      </head>
      <body onload="loadXML()">
        <table id="table_note">
          <tr>
            <td width="200px" valign="top" class="text2" height="20px">
            </td>
            <td valign="top" width="15px" align="right">
            </td>
          </tr>
        </table>
      </body>
      

  9.   

    本帖最后由 net_lover 于 2011-02-10 17:34:02 编辑
      

  10.   

    谢谢,这种方式我已经试过,IE Firefox都可以,opera11是不可以的,能帮忙测试下吗?
      

  11.   

    本帖最后由 net_lover 于 2011-02-10 19:34:19 编辑
      

  12.   


    能提供你的xml文件吗,改为我的xml后,ie 和 Firefox都可以,opera不可以
      

  13.   

    <?xml version="1.0" encoding="GB2312"?>
    <students>
    <student>
    <name destr="姓名">kevin</name>
    <sex destr="性别">男</sex>
    <age destr="年龄">20</age>
    </student>
    <student>
    <name destr="姓名">小张</name>
    <sex destr="性别">男</sex>
    <age destr="年龄">25</age>
    </student>
    <student>
    <name destr="姓名">小丽</name>
    <sex destr="性别">女</sex>
    <age destr="年龄">20</age>
    </student>
    <student>
    <name destr="姓名">李飞</name>
    <sex destr="性别">男</sex>
    <age destr="年龄">21</age>
    </student>
    <student>
    <name destr="姓名">李飞2</name>
    <sex destr="性别">男</sex>
    <age destr="年龄">21</age>
    </student>
    </students>
      

  14.   

    我的例子不就是可以的吗?
    <?xml version="1.0" encoding="utf-8"?>文件本身用记事本打开,另存为 utf-8,而不是ansi
      

  15.   


    已经照做,问题依旧,opera不能显示
      

  16.   

        var xmlDoc;
        function loadXML() {
          // code for IE
          if (window.ActiveXObject) {
            xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
            xmlDoc.async = false;
            xmlDoc.load("xml/news2.xml");
            getmessage();
          }
          // code for Mozilla, Firefox, Opera, etc.
          else if (document.implementation && document.implementation.createDocument) {
            xmlDoc = document.implementation.createDocument("", "", null);
            
    xmlDoc.load("xml/news2.xml");

            xmlDoc.onload = getmessage;
          }
          else {
            alert('Your browser cannot handle this script');
          }
        }
        function getmessage() {

          var nodes = xmlDoc.getElementsByTagName("t1")
          tb = document.getElementById("table_note");
          tbody = document.createElement("tbody")
          for (i = 0; i < 7; i++) {
            alert("a")            //这个能显示
            tr = document.createElement("tr")
            td = document.createElement("td")
            qq = td.innerHTML = nodes[i].getElementsByTagName("title")[0].childNodes[0].nodeValue
    alert(td.innerHTML)   //这个不显示,估计是innerHTML问题请帮忙看看