微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 XML 获取数据并在 HTML 上显示 - 输入变量

如何解决从 XML 获取数据并在 HTML 上显示 - 输入变量

我正在尝试从 xml 文件获取数据并显示内部输入,但我需要从输入中获取参数。

代码在单击按钮时有效,但返回带有参数 'sbbr'

的 xml 文件

这是我的代码

<script>
  var icaocode = 'sbbr'
  var client;
  if (window.XMLHttpRequest) {
    client = new XMLHttpRequest();
  } else {
    client = new ActiveXObject("Microsoft.XMLHTTP");
  }

  client.open('GET','https://mywebsite.com/api/?icaoCode=' + icaocode,true);

  function buscarFunction() {

    var xmlDoc = client.responseXML;

    var heliponto = xmlDoc.getElementsByTagName("aisweb");
    for (i = 0; i < heliponto.length; i++) {
      data = heliponto[i].getElementsByTagName("name")[0].childNodes[0].nodeValue;
      city = heliponto[i].getElementsByTagName("city")[0].childNodes[0].nodeValue;
      org = heliponto[i].getElementsByTagName("rmkText")[0].childNodes[0].nodeValue;
    }

    document.getElementById('nome').value = data;
    document.getElementById('cidade').value = city;
    document.getElementById('org').value = org;
  }
  client.send();
</script>
<input id="icao"><button type="button" onclick="buscarFunction()">Buscar</button><Br>
<input id="nome"><br>
<input id="cidade"><br>
<input id="org">

我需要从这里获取这个参数:

<input id="icao"><button type="button" onclick="buscarFunction()">Buscar</button>

但没有填充变量icaocode,我试过这个:

var icaocode = document.getElementById('icao').value;
client.open('GET',true);

解决方法

在所有元素完成渲染后,尝试将 <script> 放在 <body> 标记下方。我认为发生的情况是 document.getElementById('icao') 返回 null,因为还没有 ID 为 icao 的元素。

,

我修复了,找到了解决方案。 只需要添加函数 onload 并将所有代码放入主函数中,如下所示:


<input id="icao"><button type="button" onclick="buscarFunction()">Buscar</button><Br>
<input id="nome"><br>
<input id="cidade"><br>
<input id="org">
<script>

  function buscarFunction() {
    var icaocode = document.getElementById('icao').value;
    var client;
    if (window.XMLHttpRequest) {
      client = new XMLHttpRequest();
    } else {
      client = new ActiveXObject("Microsoft.XMLHTTP");
    }

    client.open('GET','https://mywebsite.com/api/?icaoCode=' + icaocode,true);
    client.send();
    client.onload = function () {
      var xmlDoc = client.responseXML;

      var heliponto = xmlDoc.getElementsByTagName("aisweb");
      for (i = 0; i < heliponto.length; i++) {
        data = heliponto[i].getElementsByTagName("name")[0].childNodes[0].nodeValue;
        city = heliponto[i].getElementsByTagName("city")[0].childNodes[0].nodeValue;
        org = heliponto[i].getElementsByTagName("rmkText")[0].childNodes[0].nodeValue;
      }

      document.getElementById('nome').value = data;
      document.getElementById('cidade').value = city;
      document.getElementById('org').value = org;
};

  }

</script>

然后存储来自输入的变量:

var icaocode = document.getElementById('icao').value;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?