2009-06-25 51 views
0

我有一個JavaScript函數代碼,我想提醒。從xml中讀取javascript警報值

function msg(x,y) 
{ 
tempstr = x.value 
if(tempstr.length>y) 
{ 
    alert(c_AcknowledgementText); 
    x.value = tempstr.substring(0,y); 
    } 
} 

現在我有一個XML下面的格式:

<?xml version="1.0" encoding="utf-8" ?> 
<root> 
    <key name="c_ContactUsHeading">Contact Us</key> 
    <key name="c_AcknowledgementText">Comments can not be more than 250 characters.</key> 
</root> 

我想的JavaScript代碼,以便在上述警告顯示的信息可以從上面的XML密鑰名「c_AcknowledgementText」讀取。

我希望這是清楚我的問題。

回答

1

基本上,你要使用XMLHttpRequest。雖然不確定你想要用tempstr做什麼等等。

function msg(x,y) 
{ 
    tempstr = x.value; 
    if(tempstr.length>y) 
    { 
     var req = new XMLHttpRequest(); 
     req.open('GET', '/file.xml', true); 
     req.onreadystatechange = function (aEvt) { 
      if (req.readyState == 4) { 
       if(req.status == 200) 
       { 
        var keys = req.responseXML.getElementsByTagName("key"); 
        for(var i = 0; i < keys.length; i++) 
        { 
         var key = keys[i]; 
         if(key.getAttribute("name") == "c_AcknowledgementText") 
         { 
          alert(key.textContent); 
          break; 
         } 
        } 
       } 
       else 
        alert("Error loading page\n"); 

        } 
     }; 
     req.send(null); 
     x.value = tempstr.substring(0,y); 
    } 
} 
0

你必須解析爲c_AcknowledgementText XML文件(無論是在JavaScript或使用服務器端語言並存入JavaScript作爲網頁加載)。

+0

謝謝,我可以有代碼使用JavaScript。 – 2009-06-26 11:22:19

1

第一步是獲取XML文檔的DOM引用。一種方法是使用Ajax。在這種情況下,服務器需要使用Content-Type:text/xml標題進行響應。

$.ajax({ 
    type: "GET", 
    url: "/path/to/my.xml", 
    dataType: "xml", 
    success: function(doc){ 
    var keys = doc.getElementsByTagName('key'); 
    if (keys.length > 0) { 
     for (var i=0; i<keys.length; i++) { 
     if (keys[i].getAttribute('name') == 'c_AcknowledgementText') { 
      alert(keys[i].innerHTML); 
     } 
     } 
    } 
    } 
}); 

你可能需要一些額外的錯誤處理等

+0

屬性是responseXML。 – 2009-06-25 15:27:59

+0

更正 - 謝謝。 – steamer25 2009-06-25 15:59:44