gpt4 book ai didi

javascript - XML、Javascript - 无法调用 null 的方法 getElementsByTagName

转载 作者:行者123 更新时间:2023-11-28 00:08:26 25 4
gpt4 key购买 nike

我正在研究一个小网站创意,但我在这方面并不是很擅长。我基本上有一个 HTML 测验,它会提示用户我在 XML 中定义的问题。

window.onload = function xml() 
{
// get form from HTML
var form = document.getElementById("form");

// get XML document
if (window.XMLHttpRequest)
{
var xmlhttp = new XMLHttpRequest();
}

// open XML
xmlhttp.open("GET", "questions.xml", false);
xmlhttp.send(null);

// initialize elements for do document, questions, and details
var xmlDoc = xmlhttp.responseXML;
var question = xmlDoc.getElementsByTagName("question");

在上面的行中,我收到一条错误消息“无法调用 null 的方法‘getElementsByTagName’”。然而,奇怪的是,如果 XML 文件有多个“问题”标签,我只会得到所说的错误。如果我的 XML 中只有一个“问题”标签,那么整个功能就可以完美运行。所以我想知道在这种情况下发生了什么,以及为什么它对我不起作用。

(下面的其余代码显示了我开始使用该函数的位置)

    var qXML = xmlDoc.getElementsByTagName("q");

// write values into HTML for each question
for ( i = 0 ; i < question.length ; i++ )
{
// qBlock div for question
var div = document.createElement('div');
div.className = "qBlock";

此代码会继续一段时间以获取 HTML 中的所有字段。总的来说,除非有多个“问题”元素,否则循环中的这个代码块自始至终都在工作。

非常感谢任何能在这方面帮助/教我的人。如果我做错了什么,也请随时告诉我。我对任何批评持开放态度。

最佳答案

虽然在没有看到您的 questions.xml 文件的情况下我不能确定这是问题所在,但您可能有多个根元素。例如:

<?xml version="1.0"?>
<question>...</question>
<question>...</question>

XML 不允许这样做,并且将无法解析。将它们包裹在一个根元素中:

<?xml version="1.0"?>
<questions>
<question>...</question>
<question>...</question>
</questions>

关于javascript - XML、Javascript - 无法调用 null 的方法 getElementsByTagName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17016369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com