我正在尝试使用jQuery加载xml文件。使用验证器网站测试时,该文件被报告为有效。但是,当我在文件上尝试$ .parseXML时,我收到以下错误:
Uncaught Error: Invalid XML: questions.xml
以下是我使用的代码:
var xml = $.parseXML('questions.xml');
这是questions.xml中的XML:
<?xml version="1.0" encoding="UTF-8"?>
<questionnaire defaultLanguage="english" xmlns="http://localhost/questionnaire" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://localhost/questionnaire
questions.xsd">
<question id="index" type="other">
<content>
<default>Hi</default>
<language type="spanish">Hello</language>
<language type="russian">Hi</language>
</content>
</question>
<question id="c01-q01" qId="Q0301" type="compliance">
<content>
<default>Hi</default>
<language type="spanish">Hello</language>
<language type="russian">Again</language>
</content>
<answer id="1" color="green">
<default>Yes</default>
<language type="spanish">sí</language>
<language type="russian">Да</language>
</answer>
<answer id="2" color="red">
<default>No</default>
<language type="spanish">no</language>
<language type="russian">Нет</language>
</answer>
</question>
<question id="c01-q02" qId="Q0302" type="compliance">
<content>
<default>Hiyo</default>
<language type="spanish">What?</language>
<language type="russian">Yolo</language>
</content>
<answer id="1" color="red">
<default>Please</default>
<language type="spanish">Fix</language>
<language type="russian">Me</language>
</answer>
<answer id="2" color="red">
<default>I'm</default>
<language type="spanish">Scared</language>
<language type="russian">Of</language>
</answer>
<answer id="3" color="yellow">
<default>Dark</default>
<language type="spanish">Yolo</language>
<language type="russian">Mole</language>
</answer>
<answer id="4" color="yellow">
<default>Is</default>
<language type="spanish">Helping</language>
<language type="russian">Organization</language>
</answer>
</question>
</questionnaire>
答案 0 :(得分:2)
您传递给parseXML
的值必须是 XML字符串。您传递的是文件名字符串(或可能是相对URI)。
您需要将其更改为更像:
var xml = $.parseXML('<foo><bar /><baz attribute="value" /></foo>');
或者,您可以使用$.ajax
从URI加载XML。
$.ajax("questions.xml", { success: processXML });
function processXML(xml) {
console.log(xml);
}