Javascript 为什么在PhoneGap应用程序中没有正确加载XML文件?

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

我正在开发一个基于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="">
        <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中的符号是保留的,必须转换为“&;”