Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XML,Javascript-未捕获类型错误:无法调用方法';getElementsByTagName';空的_Javascript_Xml_Null - Fatal编程技术网

XML,Javascript-未捕获类型错误:无法调用方法';getElementsByTagName';空的

XML,Javascript-未捕获类型错误:无法调用方法';getElementsByTagName';空的,javascript,xml,null,Javascript,Xml,Null,我试图创建一个表,从XML文件中获取HTML表。但是,它不断给我错误未捕获的TypeError:无法调用null的方法'getElementsByTagName',即使XML文件中确实有一个名为的标记。可能有一个显而易见的原因导致了这个问题,但这是我第一次使用XML和JS,所以我不确定它是什么。有人知道问题出在哪里吗 JS: XML: 第一单元 第二单元 第三单元 ]]> 您必须解析XML。如果不进行分析,则无法访问响应字符串中的节点 xmlhttp=new XMLHttpRequest();

我试图创建一个表,从XML文件中获取HTML表。但是,它不断给我错误
未捕获的TypeError:无法调用null的方法'getElementsByTagName',即使XML文件中确实有一个名为
的标记。可能有一个显而易见的原因导致了这个问题,但这是我第一次使用XML和JS,所以我不确定它是什么。有人知道问题出在哪里吗

JS:

XML:


第一单元
第二单元
第三单元
]]>

您必须解析XML。如果不进行分析,则无法访问响应字符串中的节点

xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","media.xml",false);
xmlDoc=xmlhttp.responseXML;

parser = new DOMParser(); // new Parser
xmlDoc = parser.parseFromString(xmlDoc,"text/xml"); // Parse string

document.getElementById("y").innerHTML = xmlDoc.getElementsByTagName("x")[0].textContent || xmlDoc.getElementsByTagName("x")[0].innerText; // Use textContent for getting the content of the "x" node. In IE you have to use "innerText"

DOMParser可以将存储在字符串中的XML或HTML源解析为DOM 文件


请检查您创建的XML文件。你的代码看起来不错。无法正确打开和读取文件


Arun

xmlhttp。responseXML
为空。不知道为什么。你能手动访问该URL吗?@sabof目前直接从USB运行。我会从硬盘上试试,也许是吧。”
…肯定有一个名为
”的标签,然后读
。。。?另外,看起来
tv
会在XML中“关闭”
x
。您确定在尝试读取响应时已执行AJAX调用吗?@mm865您的意思是没有服务器?尝试将其上载到服务器。@Teemu这只是因为我在发布之前对脚本进行了概括。fix.XMLHttpRequest是否具有属性responseXML以避免正确执行此操作?请查看中的属性定义,它修复了错误,但是现在显示了第二个错误,显示为
uncaughttypeerror:无法读取
document.getElement….
行上未定义的
属性'innerHTML',即使定义了
xmlDoc
。那么您正在搜索的元素不存在。请使用浏览器控制台进行进一步调试。
<?xml version="1.0" encoding="UTF-8"?>
<library>
    <x>
        <![CDATA[
        <tr>
            <td>First cell</TD>
            <td>Second Cell</td>
            <td>Third cell</td>
        </tr>
        ]]>
    </x>
</library>
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","media.xml",false);
xmlDoc=xmlhttp.responseXML;

parser = new DOMParser(); // new Parser
xmlDoc = parser.parseFromString(xmlDoc,"text/xml"); // Parse string

document.getElementById("y").innerHTML = xmlDoc.getElementsByTagName("x")[0].textContent || xmlDoc.getElementsByTagName("x")[0].innerText; // Use textContent for getting the content of the "x" node. In IE you have to use "innerText"