2015-11-04 46 views
0

我想加載一個XML文件使用jQuery。當使用驗證器網站進行測試時,該文件被報告爲有效。然而,當我嘗試$ .parseXML上的文件,我得到以下錯誤:

Uncaught Error: Invalid XML: questions.xml 

這裏是我使用的代碼:

var xml = $.parseXML('questions.xml'); 

這裏是問題的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> 
+2

''questions.xml''不會爲我傳遞任何xml驗證器。 –

回答

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); 
}