使用JQuery显示XML值

使用JQuery显示XML值,jquery,Jquery,我正在使用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>

我正在使用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>
// 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中创建这样的函数,我将只传递name属性值,它将从XML中获取实际值,例如

getDataFromResourceFile('LoginAccount')应显示“登录到您的帐户”


请建议

使用此选项将您的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
    }
});
然后

这将对您的XML文件起作用。在使用变量(xmlData)之前,可能需要检查XML数据是否已加载到该变量中

编辑

编辑以从服务器加载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>

var-xmlData;
函数getDataFromResourceFile(键)
{
if(xmlData==null)
{
$.ajax({
键入:“获取”,
url:“resources.xml”,
数据类型:“xml”,
成功:函数(xml)
{
xmlData=xml;
返回$(xmlData).find('data[name='+key+']value').text();
}
});
}
其他的
{
返回$(xmlData).find('data[name='+key+']value').text();
}
}

谢谢@Omkar,我不明白您想说什么“在使用变量(xmlData)之前,您可能需要检查XML数据是否已加载到变量中。”您能举个例子建议一下吗。因为我们是通过ajax请求(异步)加载XML的可能还没有收到文件,我们尝试使用$(xmlData).find('data[name='+resourceKey+']value').text();这将导致一个错误,因为xmlData将为null。因此,这需要什么类型的检查,请建议@谢谢你的帮助!
<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>