Javascript 为什么在PhoneGap应用程序中没有正确加载XML文件?
我正在开发一个基于PhoneGap的IPhone应用程序,我的文件夹结构如下Javascript 为什么在PhoneGap应用程序中没有正确加载XML文件?,javascript,jquery,xml,cordova,Javascript,Jquery,Xml,Cordova,我正在开发一个基于PhoneGap的IPhone应用程序,我的文件夹结构如下 www/ www/js/ www/css www/data/ “/data”文件夹有一个存储传真的XML文件,其结构是 <?xml version="1.0" encoding="UTF-8"?> <Faculties> <Faculty Name="" Room="" Phone="" Fax="" Email="" Address=""> <Depa
www/
www/js/
www/css
www/data/
“/data”文件夹有一个存储传真的XML文件,其结构是
<?xml version="1.0" encoding="UTF-8"?>
<Faculties>
<Faculty Name="" Room="" Phone="" Fax="" Email="" Address="">
<Department Name="">
<Room>
</Room>
<Phone>
</Phone>
<Fax>
</Fax>
<Email>
</Email>
<Address>
</Address>
</Department>
</Faculty>
<Faculty Name="" Room="" Phone="" Fax="" Email="" Address="">
<Department Name="">
<Room>
</Room>
<Phone>
</Phone>
<Fax>
</Fax>
<Email>
</Email>
<Address>
</Address>
</Department>
</Faculty>
<Faculty Name="" Room="" Phone="" Fax="" Email="" Address="">
<Department Name="">
<Room>
</Room>
<Phone>
</Phone>
<Fax>
</Fax>
<Email>
</Email>
<Address>
</Address>
</Department>
</Faculty>
</Faculties>
我正在使用jQuery和AJAX阅读此XML。它可以查询,尽管它总是检索2个系而不是3个系,因为有3个系而不是2个系
function populateFaculties(target, after) {
var file = "data/FacultiesAndDepartments.xml";
$(target).find("option:gt(0)").remove().end();
$.ajax({
url: file,
type: 'GET',
dataType: 'xml',
success: function(result) {
var faculties = $(result).find("Faculties Faculty");
console.log("There are " + faculties.length + " faculties in the XML.");
if (faculties.length < 1) {
$(target).attr("disabled", "disabled");
after(null);
return null;
}
var done = 0;
$(faculties).each(function(index, faculty) {
done++;
$(target).append('<option value="' + (index + 1) + '">' + $(faculty).attr("Name") + '</option>');
});
var timer = setInterval(function() {
if (faculties.length == done) {
timer = window.clearInterval(timer);
$(target).removeAttr("disabled");
after(faculties);
}
}, 500);
}
});
}
函数populateFaulties(目标,之后){
var file=“data/faculitesanddepartments.xml”;
$(目标).find(“选项:gt(0)”).remove().end();
$.ajax({
url:file,
键入:“GET”,
数据类型:“xml”,
成功:功能(结果){
var faculties=$(结果)。查找(“faculties faculties”);
log(“XML中有“+faculties.length+”faculties”);
如果(学院长度<1){
$(目标).attr(“禁用”、“禁用”);
之后(空);
返回null;
}
var done=0;
$(教员)。每个(职能)(索引,教员){
完成++;
$(目标).append(“”+$(教员).attr(“名称”)+“”);
});
var timer=setInterval(函数(){
如果(faculties.length==完成){
计时器=窗口清除间隔(计时器);
$(目标).removeAttr(“禁用”);
之后(学院);
}
}, 500);
}
});
}
传递的“target”是“select”元素,“after”是一个委托函数。我自己解决了这个问题。XML中的符号是保留的,必须转换为“&;”