2011-03-14 7 views
0

Android 앱에 Appcelerator Titanium을 사용하고 있으며 아래 코드가 Android 에뮬레이터에서 오류를 생성합니다. 내 Javascript 또는 Appcelerator에있는 것이 있는지 확실하지 않습니다.getAttribute를 사용하는 중 오류가 발생했습니다. 그 이유는 무엇입니까?

그것은 어떤 이유로 대해 getAttribute에 개체 및 다음과 같은 오류를 제공합니다 :

형식 오류 : 정의되지 않은 (응용 프로그램 : //pages/xml.js#12)의 방법 "의 getAttribute"호출 할 수 없습니다

(포맷으로 인해 아래 12 번 라인이 아닐 수도 있습니다 !! Thx)

getAttribute가 문제를 일으키는 이유는 무엇입니까? Pastie에

// BEGIN SAMPLE CODE 

var xhr = Titanium.Network.createHTTPClient(); 

xhr.onload = function() 
    { 
     var xmlDoc = this.responseXML.documentElement; 
     var xlocalestatus=xmlDoc.getElementsByTagName('Locations'); 
     var xbooks=xmlDoc.getElementsByTagName('Books'); 
     var newname = ''; 

     for (i=0;i<xlocalestatus.length;i++) 
     { 
      newname = xbooks[i].getAttribute('Name'); 
      Ti.API.info(newname); 
     } 
    }; 

// open the client 

xhr.open('GET','http://myurl.com'); 

// send the data 

xhr.send(); 


// END SAMPLE CODE 

코드도 사용할 수 있습니다 : 여기

코드 여기 http://pastie.org/1670908

감사

답변

0

즉, xbooks[i]은 정의되지 않은 값에 대해 getAttribute를 호출하고 말하는 정의되지 않았습니다.

이것은 아마도 접속중인 서버에서 예상 한 결과를 얻지 못했음을 나타냅니다. 정확히 무엇이 돌아오고 정확히 xbooks 및/또는 해당 요소가 설정되는지 검토해야합니다.

0

xlocalestatus와 xbooks의 길이가 같을 것으로 예상됩니다. 아마도이 두 배열의 실제 길이가 다릅니다. 첫 번째 것은 10이고 두 번째 것은 8입니다. 이제 xbooks [9]에 액세스하면이 오류가 발생하고 xbooks [9]는 정의되지 않습니다.

관련 문제