javascript - XML 响应文本未定义
问题描述
我正在调用外部服务器,并收到带有数据的有效响应。如果我将这些数据转储到其中,console.log()
我可以看到我正在寻找的数据。但是返回的数据是 XML,如果我尝试getElementsByTagName
在响应文本上使用该方法,则会收到错误消息Uncaught TypeError: searchResults.getElementsByTagName is not a function
。我检查并且searchResults
未定义,我假设这是我的问题,我只是不确定如何解决它。
function getBggData() {
var searchTerm = document.getElementById("searchTerm").value;
// console.log("Search Term = " + searchTerm);
var httpURL = "https://www.boardgamegeek.com/xmlapi2/search?type=boardgame,boardgameexpansion&query=" + searchTerm
// console.log("URL used is = " + httpURL);
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
displayData(this);
}
};
xhttp.open("GET", httpURL, true);
xhttp.send();
};
function displayData(xml) {
var i;
var searchResults = xml.responseText;
console.log(searchResults.type);
console.log(searchResults);
var table = "<tr><th>Game</th><th>Year Released</th></tr>";
var x = searchResults.getElementsByTagName("item");
document.getElementById("resultsHeader").innerHTML = "Search Results = " + x + " items.";
document.getElementById("searchResults").innerHTML = table;
};
解决方案
你可以这样做,
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(xml,"text/xml");
console.log(xmlDoc.getElementsByTagName("title")[0]);
在这里,我们正在解析 xml 并将其获取到变量 xmlDoc
推荐阅读
- python - Tensorflow 在计算时内存不足:如何发现内存泄漏?
- python - 从其他目录运行脚本时找不到库
- python - 每个时间间隔用数据库更新表
- javascript - Javascript 多重赋值
- unit-testing - symfony4 命令测试中的模拟服务
- null - snakeyaml 转储空字段而不是 null
- c# - 如何在网格中设置默认值?
- vba - VBA 检查一列中的值是否存在于另一列中,如果存在,则传输相关数据
- powershell - powershell - 无法识别 IE 复选框
- azure-iot-hub - 在 Azure IoT Hub 中使用设备孪生的额外字段标签创建设备