我正在尝试创建一个从XML文件中获取HTML表的表。但是,即使XML文件中肯定有一个名为Uncaught TypeError: Cannot call method 'getElementsByTagName' of null
的标记,它也会一直给我错误<x>
。可能有一个明显的问题导致了这个问题,但这是我第一次使用XML和JS,所以我不确定它是什么。有谁知道问题是什么?
JS:
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","media.xml",false);
xmlDoc=xmlhttp.responseXML;
document.getElementById("y").innerHTML = xmlDoc.getElementsByTagName("x")[0];
XML:
<?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>
答案 0 :(得分:1)
您必须解析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 文献
答案 1 :(得分:-1)
请检查您创建的XML文件。你的代码看起来不错。它无法正确打开和读取文件。
阿伦