使用JavaScript将HTML内容替换为来自外部XML文件的内容?

问题描述:

我试图将API生成的XML文件与(当前)静态网页连接起来,该网页可以在oliverpwilson.github.io/tubular处找到。我大致结构,像这样一个HTML文件:使用JavaScript将HTML内容替换为来自外部XML文件的内容?

<div> 
    <span id="content">No Content Yet</span> 
</div> 

和一些JavaScript在<header>以确定<span>发生的事情:

<script> 
     function myFunction() { 
     document.getElementById("content").innerHTML = "Some Content Now!"; 
</script> 

<body onload="myFunction">因此触发负载。

这一切正常。

我想要做的是使用通过API(Transport for London API,准确而言)生成的外部XML文件,以URI http://cloud.tfl.gov.uk/TrackerNet/LineStatus托管,使用javascript解析信息并使用该信息进行更新什么我

document.getElementById("content").innerHTML = "Some Content Now!";

显示引号内,即替换“有些内容现在!”无论XML文件生成的内容是否存在于某个标记内,例如<Status Description="Good Service">,其中“Some Content Now!”将被“良好的服务”所取代。

我希望广义上有道理。我不知道如何去做这个,所以任何帮助将不胜感激。

+0

请参见https://developer.mozilla.org/en-US/docs/Web/Guide/Parsing_and_serializing_XML – 2014-11-23 17:32:56

+0

切线方面,如果您的输入/输出变得复杂,XSLT可能会有事要看。 – 2014-11-23 17:53:10

我看了你的网站你发布了什么。在那里,你有这样的元素,这些元素具有以下结构:

div xxx-line 
|--- div details 
     |--- div status 
     |--- div details 

有了这些,你有你的JavaScript想什么直接的选项的机会。 你可以通过'status'或'details'中的id来调用它,或者你可以通过类'div xxx-line'来感觉*。

你可以用下面的代码读取XML:

if (window.DOMParser) 
{ 
    parser=new DOMParser(); 
    xmlDoc=parser.parseFromString(txt,"text/xml"); 
} 
else // Internet Explorer 
{ 
    xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); 
    xmlDoc.async=false; 
    xmlDoc.loadXML(txt); 
} 

有了这个,你从节点的信息:与变量状态或细节,你可以更换

//Get status 
var status = xmlDoc.getElementsByTagName("status")[0].childNodes[0].nodeValue; 

//Get details 
var details = xmlDoc.getElementsByTagName("status")[0].childNodes[0].nodeValue; 

div的内容