0

我正在尝试为一些 xml 做一个 document.write 以在 html 中显示。请耐心等待,因为我是 Javascript 的初学者。这是我到目前为止的代码:

<script>
function loadXMLDoc()
{
if (window.XMLHttpRequest)
  {
  xhttp=new XMLHttpRequest();
  }
else
  {
  xhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xhttp.open("GET","Data/xmlfile.xml",false);
xhttp.send();
return xhttp.responseXML;
} 
</script>

<body>

<script>

    xmlDoc=loadXMLDoc("Data/xmlfile.xmll");
    var x=xmlDoc.getElementsByTagName("col");
[0].childNodes[0].nodeValue + "<br>");
    document.write(xmlDoc.getElementsByName("Rep")[1].childNodes[0].nodeValue + "<br>");
    document.write(xmlDoc.getElementsByName("Rep")[2].childNodes[0].nodeValue + "<br>");
    document.write(xmlDoc.getElementsByName("Rep")[3].childNodes[0].nodeValue + "<br>");
    document.write(xmlDoc.getElementsByName("Rep")[4].childNodes[0].nodeValue + "<br>");
    document.write(xmlDoc.getElementsByName("Rep")[5].childNodes[0].nodeValue + "<br>");
    document.write(xmlDoc.getElementsByName("Rep")[6].childNodes[0].nodeValue + "<br>");


</script> 

 <div><span class="reps"></span></div>

我也试过:

    //r = document.getElementById("reps");
        //var inh=document.getElementById("reps").innerHTML;
        //r.innerHTML = document.write(xmlDoc.getElementsByName("Rep")

    document.getElementById("reps").innerHTML=xmlDoc.getElementsByName("Rep")[7].childNodes[0].nodeValue;

然后我尝试了:

  r.innerHTML = document.write(xmlDoc.getElementsByName("Rep")[0].childNodes[0].nodeValue + "<br>");

在研究了一些网站后,它提到 XML 不能与 document.write 一起使用。这是真的?为什么它在 Dreamweaver live 中有效,但在我在服务器上运行时无效?

我怎样才能让它工作?

最终,我想从 XML 中绘制每个节点值,并将其作为单独的超链接显示在 div 中。我已经在 XML 中有超链接,并这样编写了 javascript:

document.write("9 - " + "<a href='" + xmlDoc.getElementsByName("RepWeb")[8].childNodes[0].nodeValue + "'>" + xmlDoc.getElementsByName("Rep")[8].childNodes[0].nodeValue + "</a>" + "<br>"); 

我究竟做错了什么?

4

1 回答 1

0

没关系 ,我明白了!getElementsByName 仅适用于 Safari。我最终编写了一个新的 XML 文件并通过 getElementByTagName 提取文本

于 2013-03-14T15:04:32.980 回答