2011-08-16 2 views
0

PhoneGap 기반의 아이폰 어플리케이션을 개발 중이고 아래와 같은 폴더 구조가 있습니다.XML 파일이 PhoneGap 응용 프로그램에서 올바르게로드되지 않는 이유는 무엇입니까?

www/ 
www/js/ 
www/css 
www/data/ 

은 "/ 데이터"폴더 facutlies를 저장하는 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을 읽고있다. 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); 
     } 
    }); 
} 

은 "대상"요소 "를 선택"인 전달이 있기 때문에 항상 2 개 학부 대신 3을 검색하지만 그것은 조회 할 수 있습니다 대리자 기능은 "후".

답변

0

나는이 문제를 직접 알아 냈다. XML의 앰퍼샌드는 예약되어 있으므로 "& amp;"로 변환해야합니다.

관련 문제