2014-09-02 117 views
-2

這是我正在開發的項目的簡化版本。XML干擾javascript變量

<!DOCTYPE html> 
<html> 
<body> 

<script type="text/javascript"> 
    var bridge; 

    if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
    else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    xmlhttp.open("GET","MarketSpreadsheet.xml",false); 
    xmlhttp.send(); 
    xmlDoc=xmlhttp.responseXML; 


    bridge = "xml data goes in here"; 

</script> 


<svg height="300" width="300"> 
    <text id="thePopUp" x="150" y="150" font-size="30" fill="black" visibility="visible"></text> 
</svg> 

<script type="text/javascript"> 
thePopUp.textContent = bridge; 
</script> 

</body> 
</html> 

我試圖創建一個動態的SVG元素,由於某種原因,解析XML字符串直接進入thePopUp.textContent不能正常工作。我的計劃是將XML數據轉換爲JavaScript變量矩陣,並使用它來分配文本內容。我的問題是,xml.http.send();行是取消我的變量賦值,使輸出「未定義」。我需要該行來訪問我的xml文件,但該行讓我不能將xml分配給一個變量(或者任何涉及該變量的變量)。這裏發生了什麼?

+3

也許你應該先問自己,爲什麼你」重新嘗試支持IE5並使用嵌入式SVG。然後,'xmlhttp.send()'是否實際上否定了以下語句,或者'xmlhttp.responseXML'實際上是'未定義的',因爲MarketSpreadsheet.xml中的Content-Type錯誤,或者請求是否' t成功。然後,將XML DOM放入SVG''元素的'textContent'中是否有意義。 – Ryan 2014-09-02 04:10:40

回答

0
SAMPLE XML 
<exam courseName="MS Word" methodTxt="WRITE THE CORRECT OPTION IN ANSWER FIELD" exam_no="1" blankFeedback="Please write your answer"> 
    <item> 
     <question><![CDATA[What is new in MS Word 2010?What is new in MS Word 2010?What is new in MS Word 2010?What is new in MS Word 2010?What is new in MS Word 2010?What is new in MS Word 2010?What is new in MS Word 2010?tapash]]></question> 
     <acceptable_option this_question_marks="2"> 
      <option marks="2"><![CDATA[Tabs]]></option> 
      <option marks=".4"><![CDATA[Buttons]]></option> 
      <option marks=".4"><![CDATA[Check boxes]]></option> 
      <option marks=".4"><![CDATA[Dialog boxes]]></option> 
     </acceptable_option> 
    </item> 
    <item> 
     <question><![CDATA[The Ribbon is divided into]]></question> 
     <acceptable_option this_question_marks="2"> 
      <option marks="2"><![CDATA[Tabs]]></option> 
     </acceptable_option> 
    </item> 
</exam> 

AND JAVASCRIPT IS 
if (window.XMLHttpRequest){ 
     xmlhttp=new XMLHttpRequest(); 
    } 
    else {// code for IE6, IE5 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhttp.open("GET","xml/fill_in_the_blank.xml",false); 
    xmlhttp.send(); 
    xmlDoc=xmlhttp.responseXML; 


    myXMLDoc=xmlDoc.getElementsByTagName('item'); 
    totalQuestion = myXMLDoc.length; 

$( 「#thePopUp」)。文本(totalQuestion)

但你需要使用jQuery和 「Web服務器或類似WAMP」