DOM XML:getElementsByTagName(...)[0] 未定义

问题描述

我正在用 JavaScript 生成一个 XML 文件,当我遍历一个对象数组以在 XML 中输入数据时,它给了我你在标题中看到的错误。我正在生成要在其中放置某些元素的 ROW 节点。当我尝试访问元素的 X 位置或尝试将其添加到节点时,我的问题就开始了。

this.array.forEach((element) => {
    var node = xmlDoc.createElement("ROW");
    var row = xmlDoc.getElementsByTagName("ROW");

    var fecha = xmlDoc.createElement("DATE");
    xmlDoc.getElementsByTagName("DATE")[0].textContent = element.fecha;
    row[0].appendChild(fecha);

    var descripcion1 = xmlDoc.createElement("DESCRIPTION");
    xmlDoc.getElementsByTagName("DESCRIPTION")[0].textContent =
      element.descripcion1;
    row[0].appendChild(descripcion1);

    var descripcion2 = xmlDoc.createElement("DESCRIPTION2");
    xmlDoc.getElementsByTagName("DESCRIPTION2")[0].textContent =
      element.descripcion2;
    row[0].appendChild(descripcion2);

    var nombre = xmlDoc.createElement("NAME");
    xmlDoc.getElementsByTagName("NAME")[0].textContent = element.nombre;
    row[0].appendChild(nombre);

    rowset[0].appendChild(node);
  });

这里我告诉你我是如何生成 XML 的。

var xmlDoc = document.implementation.createDocument(null,"filename");

  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function () {
    if (xhttp.readyState == 4 && xhttp.status == 200) {
      var xmlDoc = xhttp.responseXML;
    }
    xhttp.open("GET","filename.xml",true);
    xhttp.send();
  };

  var xmlString = "<ROWSET></ROWSET>";
  var parser = new DOMParser();
  var xmlDoc = parser.parseFromString(xmlString,"text/xml");

  var rowset = xmlDoc.getElementsByTagName("ROWSET");

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)