使用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!”将被“良好的服务”所取代。
我希望广义上有道理。我不知道如何去做这个,所以任何帮助将不胜感激。
我看了你的网站你发布了什么。在那里,你有这样的元素,这些元素具有以下结构:
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的内容
请参见https://developer.mozilla.org/en-US/docs/Web/Guide/Parsing_and_serializing_XML – 2014-11-23 17:32:56
切线方面,如果您的输入/输出变得复杂,XSLT可能会有事要看。 – 2014-11-23 17:53:10