我不确定这是否可行,我正在开发一个我无法访问任何类型的MYSQL或数据库的网站。也不是任何PHP。便宜的客户
无论我有3个包含不同数据部分的XML文件,我都放置了一个相互匹配的“密钥”。我相信一个简单的IF语句会进行匹配。
然而,调用3个XML文件并从所有文件中提取数据的最佳方法是什么,并将它们组合成一个循环。
以下是用于拉取其中一个的代码:
$.ajax({
type: "GET",
url: "xml/classes.xml",
dataType: "XML",
beforeSend: function(){
$('#classContainer').append("<p>Loading</p>");},
success: function(xml) {
$(xml).find('monday').each(function(){
var $classdate = $(this);
var title = $classdate.find("class").attr('title');
var level = $classdate.find("class").attr('classLevel');
var time = $classdate.find("time").text();
var duration = $classdate.find("time").attr("duration");
var hourofday = $classdate.find("time").attr("hourofday");
var location = $classdate.find("location").text();
var Monhtml = '<div class="classBlock">';
Monhtml += '<p class="title">' + title + '<span class="loadingPic" alt="Loading" /> ' + ' </p>';
Monhtml += '<p class="infoBar"> <strong>Time:</strong>' + time + '<span class="hour">'+ hourofday +'</span><br>'+'<strong>Duration:</strong>' + duration +' Minutes <br>' + '<strong>Location:</strong>' + location + '<br><strong>Instructor:</strong> </p>';
Monhtml += '<p class="description"> <span class="level">' + level + '</span></p>' ;
Monhtml += '</div>';
$('#classContainer').append($(Monhtml));
});
}
});
我想创建一个放在“monHTML”中的变量我将从3个XML文档中将一组变量全部合并到“monHTML”变量中。
任何想法“?
答案 0 :(得分:1)
由于您无法合并服务器上的文件,因此您需要执行3个独立的Ajax请求。困难在于同步3个请求。它们可以同步执行,但这肯定会损害性能并可能导致超时。更好的方法是异步发送3个请求,并在3个请求完成后调用回调:
var addreses = ['xml/file1.xml', 'xml/file2.xml', 'xml/file3.xml'];
var ajaxQueue = {
files : [],
checkFinished : function() {
if (this.files.length == addresses.length) {
// You can work with the 3 xml files here...
// this.files will be an array of elements that contain
// url and xml parameters. Check the url parameter to identify the
// corresponding xml.
// Remark: as the order in which the requests finish can vary, the array
// will not be sorted.
}
};
};
$(addreses).each(function(index, address) {
$.ajax({
url : address,
dataType : 'xml',
success : function(data) {
ajaxQueue.files.push({ url: address, xml: data });
ajaxQueue.checkFinished();
}
});
});
答案 1 :(得分:0)
您的客户端可能能够负担本机xml数据库。有几个是免费且好的 - eXist-org。是一个开始的地方。然后,您可以使用XQuery更轻松地解决此问题。