使用JQuery显示XML值
我正在使用JQuery和XML 我得到了以下XML格式 资源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>
<?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>