2010-12-19 96 views
0

我正在使用JQuery和XML。使用JQuery顯示XML值

我有下面的XML格式。

資源XML:

<?xml version="1.0"?> 
<root xmlns:link="http://www.example.com/tridion"> 
    <data name="LoginAccount" tcm="tcm:233-191754" type="Text"> 
     <value>Login to your Account</value> 
    </data> 
    <data name="Airport" tcm="tcm:233-191754" type="Text"> 
     <value>Airport</value> 
    </data> 
    <data name="BusinessClass" tcm="tcm:233-191754" type="Text"> 
     <value>Business</value> 
    </data> 
</root> 

現在我有JQuery的地方,我希望得到這些值加載第一,然後在頁面還使用它們,例如。

jQuery代碼示例:

// Dialog   
    $('#LoginLink').click(function(){ 
     $('#Login').dialog({ 
      autoOpen: true, 
      width: 450, 
      modal: true, 
      title: 'Login to your Account' 
     }); 
     if($('#Login').is(':visible')) { 
      hideSelect(); 
     } else { 
      showSelect(); 
     } 
    }); 

在上面jQuery代碼文本「登錄您的賬戶」應該來自我的資源XML作爲我的應用程序是多語言。

我期待在JQuery中創建這樣的函數,我只需傳遞名稱屬性的值,並從XML中獲取實際值,比如說。

getDataFromResourceFile( '登錄賬號');應顯示'登錄到您的帳戶'

請建議!

回答

0

使用此烏爾XML文檔加載到一個變量:

var xmlData; 
$.ajax({ 
    type: "GET", 
    url: "resources.xml",// your xml file path 
    dataType: "xml", 
    success: function(xml) { 
    xmlData = xml;// set the returned xml into a global variable 
    } 
}); 

然後

function getDataFromResourceFile(resourceKey) 
{ 
    return $(xmlData).find('data[name=' + resourceKey + '] value').text(); 
} 

這將做它爲您的XML文件。在使用XML數據之前,您可能需要檢查XML數據是否已加載到變量(xmlData)中。

編輯

編輯從服務器加載XML如果沒有找到它。

<script type="text/javascript"> 
    var xmlData; 
    function getDataFromResourceFile(key) 
    { 
     if (xmlData == null) 
     { 
      $.ajax({ 
       type: "GET", 
       url: "resources.xml", 
       dataType: "xml", 
       success: function (xml) 
       { 
        xmlData = xml; 
        return $(xmlData).find('data[name=' + key + '] value').text(); 
       } 
      }); 
     } 
     else 
     { 
      return $(xmlData).find('data[name=' + key + '] value').text(); 
     } 
    } 
</script> 
+0

謝謝@Omkar,我不明白你在說什麼「在使用它之前,你可能需要檢查XML數據是否已經加載到變量(xmlData)中。」你能舉個例子來建議嗎? – 2010-12-19 10:08:49

+0

因爲我們是通過一個Ajax請求(異步)加載XML可能因此發生該文件尚未收到,我們嘗試使用$(XMLDATA).find(「數據[名稱=」 +獲取ResourceKey +「]值')。文本();這會導致錯誤,因爲xmlData將爲空。 – Omkar 2010-12-19 10:14:15

+0

那麼,這是什麼類型的檢查,請建議! – 2010-12-19 10:16:39