Я занимаюсь разработкой приложения для iPhone на основе PhoneGap, и у меня есть структура папок, как показано ниже.
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>
Я читаю этот XML, используя jQuery и AJAX. Он может запрашивать, хотя он всегда получает 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);
}
});
}
Передается "target", который является элементом "select", а "after" является функцией делегата.