HTTPService에서 e4x를 통해 가져온 일부 XML을 구문 분석하려고합니다. 루프가 작동하고 목록의 각 에피소드마다 루프를 통과합니다. 그러나 XMLList에 추가하려고하면 다음과 같은 오류가 발생합니다. 루프 중에 XMLList에서 추가/제거
TypeError: Error #1009: Cannot access a property or method of a null object reference.
나는 로컬 SQLite 데이터베이스를 조회하고 하나의 XMLList에 추가 않을 경우 다음 다른 값 XMLList에 추가하지 않을 경우 에피소드가있는 경우 (작업)를 참조하고 노력하고 있어요.
public static function seasonFavHandler(evt:ResultEvent):void {
Application.application.ManagePage.selectedShow =
Application.application.ManagePage.gridFavourites.selectedItem as XML;
episodeNumber = XML(evt.result).descendants("episode");
var episode:Object = episodeNumber;
for each(episode in episodeNumber) {
currentEpisode = episode as XML;
achkStatement = new SQLStatement();
achkStatement.sqlConnection = dbconnection;
achkStatement.text = "select :episodename from episodes where episodename = :episodename";
achkStatement.parameters[":episodename"] = episode.title;
achkStatement.addEventListener(SQLEvent.RESULT, episodeHandler);
achkStatement.execute();
trace(episode.title);
}
//Application.application.ManagePage.episodeList = episodeNumber;
seasonHttpService.removeEventListener(ResultEvent.RESULT, seasonFavHandler);
CursorManager.removeBusyCursor();
}
private static function episodeHandler(event:SQLEvent):void {
var result:SQLResult = achkStatement.getResult();
var episodeNewT:XMLList;
var episodeWatchedT:XMLList;
if (!result.data) {
episodeNewT.appendChild(currentEpisode);
//Application.application.ManagePage.gridUnwatched.addChild(currentEpisode);
} else {
episodeWatchedT.appendChild(currentEpisode);
//Application.application.ManagePage.gridWatched.addChild(currentEpisode);
}
Application.application.ManagePage.episodeNew = episodeNewT;
Application.application.ManagePage.episodeWatched = episodeWatchedT;
achkStatement.removeEventListener(SQLEvent.RESULT, episodeHandler);
}
이것은 NULL 문제를 해결 한 것으로 보이지만 이제는 목록이 비어 있다는 또 다른 오류가 발생합니다. TypeError : 오류 # 1086 : appendChild 메서드는 하나의 항목을 포함하는 목록에서만 작동합니다. – medoix
네 말이 맞아. XMLList 용 Flex 문서를 보면 appendChild() 메서드가 없다는 것을 알 수 있습니다. 그러나 XML 데이터 유형 DOES에는 appendChild() 메소드가 있습니다. 여기서 일어나는 일은 Flex가 당신을 도우려고한다는 것입니다. 컴파일러는 마치 하나의 XML 요소와 이야기하는 것처럼 XMLList에 대해 호출 할 수있게 해줄 것입니다. 그러나 실제로는 런타임시에만 작동합니다. 명부. 대신 어쨌든 더 나은 지원을 제공하는 XMLListCollection 만 사용하십시오. –
전설! 고마워요. 다른 문제가 생겼지 만 이유를 이해하고 그 문제를 해결할 것입니다. – medoix