javascript - 使用 JavaScript 将 HTML 内容替换为外部 XML 文件中的内容?

标签 javascript html xml innerhtml

我正在尝试将 API 生成的 XML 文件与(当前)静态网页连接起来,该网页可以在 oliverpwilson.github.io/tubular 找到。 。我有一个 HTML 文件,其结构大致如下:

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

以及<header>中的一些Javascript确定 <span> 中的内容:

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

<body onload="myFunction">所以它会在加载时触发。

这一切都有效。

我想要做的是使用由 API(准确地说是伦敦交通 API)生成的外部 XML 文件,该文件托管在 URI http://cloud.tfl.gov.uk/TrackerNet/LineStatus 上。 ,使用 javascript 解析它的信息,并使用该信息来更新我的内容

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

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

我希望这具有广泛意义。我不知道如何解决这个问题,因此我们将不胜感激。

最佳答案

我已经查看了您发布的内容。在那里你有这样的元素,这些元素具有以下结构:

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

有了这些,您可以选择直接在 JavaScript 中找到您想要的内容。 您可以通过“状态”或“详细信息”中的 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 的内容

关于javascript - 使用 JavaScript 将 HTML 内容替换为外部 XML 文件中的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27091948/

相关文章:

ios - 在 iOS7 中解析 XML 文件的简单快速方法

javascript - 路由中的 Vue JS 动态组件。处理加载和错误

javascript - 在水平画笔上使用 .filter()

html - 没有绝对定位的堆叠列表项

java - 如何将 java 日期格式转换为 XML?

Android:如何使 TextView 向左浮动?

javascript - 如何使用 POST 或 GET 发送带有负载的 PUT 请求?

javascript - 验证至少一个子复选框,对应于复选框数组的选中元素

javascript - 站点导航栏不在较小的屏幕上播放动画

html - 我的微调器旋转时如何居中 - CSS 动画