【发布时间】:2021-06-25 08:48:18
【问题描述】:
我正在使用 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");
【问题讨论】:
-
首先,从事件处理程序中拉出
xhttp.open和xhttp.send行,请求永远不会发送。其次,看看stackoverflow.com/questions/23667086/… -
@Teemu 抱歉,但这对我的问题没有帮助
-
还要注意,最后一个 sn-p 中的
rowset包含一个元素。我想您的示例结构错误,它并不代表您的真实代码。 -
我想要一个名为 ROWSET 的父元素,在其中放置子元素 ROW 和它们自己的子元素。我不想重复 ROWSET。 @Teemu
标签: javascript xml dom xmldom