我正在尝试从XML文件中获取XML数据,并希望将某些节点值保存在列表中。以下是我的尝试方式:
首先,我不知道是否可以这样做。我找到了类似的问题,但是答案中的代码没有很好地解释,我不想只是复制和粘贴一些代码而不理解它(而且,即使我想这样做,我可能也做不到,因为我不知道什么代表什么)。
这段代码出现错误的原因是在render函数中未定义
我还阅读了这篇文章:https://medium.com/@catquarks/making-ajax-requests-with-react-48be0285d396,并希望像示例中那样进行操作。但我不太明白,例如,我如何获取某些标签的值?
无论如何,总结一下我的问题目标:我能否像我所做的那样使用XMLHttpRequest,并且我犯了什么错误?
我希望这不是一团乱麻。如果您需要进一步的信息/说明,请告诉我。
快速编辑:XML文件看起来有点像这样:
import React from "react";
class EditFiles extends React.Component {
constructor(props) {
super(props);
this.loadXML = this.loadXML.bind(this);
}
loadXML = () => {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var xmlDoc = this.responseXML;
var y = xmlDoc.getElementsByTagName("newFile");
for(var i=0; i<y.length; i++) {
var NameArray = [y[i].getElementsByTagName("FileName")[0]];
}
const nameList = NameArray.map(name =>
<li>{name}</li>
);
}
};
xhttp.open("GET", "./FilenameList.xml", true);
xhttp.send();
}
render() {
return(
<ul>{nameList}</ul>
);
}
}
首先,我不知道是否可以这样做。我找到了类似的问题,但是答案中的代码没有很好地解释,我不想只是复制和粘贴一些代码而不理解它(而且,即使我想这样做,我可能也做不到,因为我不知道什么代表什么)。
这段代码出现错误的原因是在render函数中未定义
nameList
。我知道它必须是一个全局函数,但我不知道如何做到这一点。我还阅读了这篇文章:https://medium.com/@catquarks/making-ajax-requests-with-react-48be0285d396,并希望像示例中那样进行操作。但我不太明白,例如,我如何获取某些标签的值?
无论如何,总结一下我的问题目标:我能否像我所做的那样使用XMLHttpRequest,并且我犯了什么错误?
我希望这不是一团乱麻。如果您需要进一步的信息/说明,请告诉我。
快速编辑:XML文件看起来有点像这样:
<Files>
<newFile>
<FileName>file1</FileName>
</newFile>
<newFile>
<FileName>file2</FileName>
</newFile>
</Files>
我还想指出的是,xml文件是动态创建的,因此无法预测会有多少个newFile
节点。
Unexpected token < in JSON at position 0
,所以我猜我没有选择正确的路径或者其他什么问题,你知道如何正确地链接到它吗?祝你也有美好的一天! - A.S.J