可以这样?
appendChild xml里面的数据..那么xml的父节点到底是谁? 还是create一个节点再appendChild吧..

解决方案 »

  1.   

    create一个节点那如何把XML中的数据放到这个节点下面呀
    下面是XML
    ------------------------
    <?xml version='1.0' encoding='UTF-8'?>
    <table>
    <tr id='OA12345'>
    <td><div align='center'>
    <img src='image/read.png' align='absmiddle' style='cursor:hand'/>
    </div></td>
    <td><div align='center'>
    <img src='image/oano.png' width='18' height='18' align='absmiddle'/>
    </div></td>
    <td style='overflow:hidden; text-overflow:ellipsis;'>OANum</td>
    <td style='overflow:hidden; text-overflow:ellipsis;'>OANum</td>
    <td style='overflow:hidden; text-overflow:ellipsis;'>OANum</td>
    <td style='overflow:hidden; text-overflow:ellipsis;'>OANum</td>
    <td style='overflow:hidden; text-overflow:ellipsis;'>OANum</td>
    <td style='overflow:hidden; text-overflow:ellipsis;'>OANum</td>
    <td style='overflow:hidden; text-overflow:ellipsis;'>OANum</td>
    <td style='overflow:hidden; text-overflow:ellipsis;'>aaa</td>
    </tr>
    </table>
      

  2.   

    window.alert(oAdd.nodeName); 
    都可以正确的得到接点的名称呀
      

  3.   

    In firefox, you can use 'importNode' function which is introduced in DOM2. But in IE, I suggest you create the elements according to the XML data.
      

  4.   

    var oAdd=XMLHttpReq.responseXML.getElementsByTagName("tr")[0];改成下面的试试.不懂就查查手册,看看.documentElement的含意
    var oAdd=XMLHttpReq.responseXML.documentElement.getElementsByTagName("tr")[0];
      

  5.   

    如果不是我说的问题,那就应该是楼上 fason 所说的,两个不同的DOM中的节点不同直接使用,需要直接在网页的Document中根据XML的数据来创建新节点再插入.
      

  6.   

    if(req.readyState==4 && req.status==200)
               {                       
                     var dtable=document.getElementById('tshow');                               var nl = req.responseXML.getElementsByTagName( 'book' );
                     for( var i = 0; i < nl.length; i++ )
                     {                
                          var nli=nl.item(i);                     
                          var eauthor=nli.getElementsByTagName('author'); 
                          var author=eauthor.item(0).firstChild.nodeValue;
                          var etitle=nli.getElementsByTagName('title');                
                          var title=etitle.item(0).firstChild.nodeValue;                  
                       
                          var elTr = dtable.insertRow( -1 );
                          var elAuthorTd = elTr.insertCell( -1 );
                          elAuthorTd.innerHTML = author;
                          var elTitleTd = elTr.insertCell( -1 );
                          elTitleTd.innerHTML = title;                                
                    }                    
               }   
      

  7.   

    var oAdd=XMLHttpReq.responseXML.getElementsByTagName("tr")[0]; 
    oRes.appendChild(oAdd); 不能这样来添加,而且在ie下对table使用appendChild时,是在tbody标签中才有用,table.appendChild可以加入行,但不显示,而且返回的节点并不是table的tr,你oRes.appendChild(oAdd); 会出错<?xml version='1.0' encoding='UTF-8'?> 
    <table> 
    <tr id='OA12345'> 
    <td> <div align='center'> 
    <img src='image/read.png' align='absmiddle' style='cursor:hand'/> 
    </div> </td> 
    <td> <div align='center'> 
    <img src='image/oano.png' width='18' height='18' align='absmiddle'/> 
    </div> </td> 
    <td style='overflow:hidden; text-overflow:ellipsis;'>OANum </td> 
    <td style='overflow:hidden; text-overflow:ellipsis;'>OANum </td> 
    <td style='overflow:hidden; text-overflow:ellipsis;'>OANum </td> 
    <td style='overflow:hidden; text-overflow:ellipsis;'>OANum </td> 
    <td style='overflow:hidden; text-overflow:ellipsis;'>OANum </td> 
    <td style='overflow:hidden; text-overflow:ellipsis;'>OANum </td> 
    <td style='overflow:hidden; text-overflow:ellipsis;'>OANum </td> 
    <td style='overflow:hidden; text-overflow:ellipsis;'>aaa </td> 
    </tr> 
    </table> function processResponse() { 
              if (XMLHttpReq.readyState == 4) { // 判断对象状态 
                  if (XMLHttpReq.status == 200) { // 信息已经成功返回,开始处理信息 
                                AddRow(XMLHttpReq.responseXML);//===========调用函数
                } else { //页面不正常 
                    window.alert("您所请求的页面有异常。"); 
                } 
            } 
        } 
    function AddRow(dom)
    {
      var tb=document.getElementById("表的id");
      var tr=tb.insertRow(tb.rows.length);
      var XMLTR=dom.getElementsByTagName("tr")[0];
      tr.id=XMLTR.getAttribute("id");//设置id
      var XMLTD=XMLTR.getElementsByTagName("td");
      var td;
      for(var i=0;i<XMLTD.length;i++)
      {
         td=tr.insertCell(i);
         td.innerHTML=XMLTD[i].firstChild.nodeValue;
      }
    }
      

  8.   

    谢谢,可以了,但是<img>这个节点不行,我改了一下XML文档,在td节点下面增加一个CDataSecion节点,但是我把td.innerHTML=XMLTD[i].firstChild.nodeValue;改成td.innerHTML=XMLTD[i].firstChild.firstChild.odeValue;却不行,请问应该怎么改
    ---------------------------------------------------------------
    <?xml version='1.0' encoding='UTF-8'?> 
    <table> 
    <tr id='OA12345'> 
    <td><![CDATA[<div align='center'><img src='image/read.png' align='absmiddle' style='cursor:hand'/></div>]]</td>
    <td><![CDATA[<div align='center'><img src='image/read.png' align='absmiddle' style='cursor:hand'/></div>]]</td>
    <td><![CDATA[OANum]]</td> 
    <td><![CDATA[OANum]]</td> 
    <td><![CDATA[OANum]]</td> 
    <td><![CDATA[OANum]]</td> 
    <td><![CDATA[OANum]]</td> 
    <td><![CDATA[OANum]]</td> 
    <td><![CDATA[OANum]]</td> 
    <td><![CDATA[aaa]]</td> 
    </tr> 
    </table>
      

  9.   

    检查是不是你的xml节点不正确?<?xml version='1.0' encoding='UTF-8'?> 
    <table> 
    <tr id='OA12345'> 
    <td> <![CDATA[ <div align='center'> <img src='image/read.png' align='absmiddle' style='cursor:hand'/> </div>]]> </td> 
    <td> <![CDATA[ <div align='center'> <img src='image/read.png' align='absmiddle' style='cursor:hand'/> </div>]]></td> 
    <td> <![CDATA[OANum]]> </td> 
    <td> <![CDATA[OANum]]> </td> 
    <td> <![CDATA[OANum]]></td> 
    <td> <![CDATA[OANum]]></td> 
    <td> <![CDATA[OANum]]></td> 
    <td> <![CDATA[OANum]]></td> 
    <td> <![CDATA[OANum]]></td> 
    <td> <![CDATA[aaa]]></td> 
    </tr> 
    </table>
    并且不需要再td.innerHTML=XMLTD[i].firstChild.firstChild.nodeValue
    可以td.innerHTML=XMLTD[i].firstChild.nodeValue,<![CDATA[]]>会自动去掉的
      

  10.   

    实在太感谢了,XML文档问题,问题全部都解决了,但是还有一个问题想请教一下
    要在HTML中插入XML文档的节点是不是一定要用XSLT来进行转换了以后才可以呀?
      

  11.   


    XSLT是直接将xml文档解释为html标签,而不是插入了,插入是js来做的