2009-04-15 3 views
1

XMLList 항목에 액세스하여 XML 객체로 변환하려고합니다.E4X 표현이 일치하는지 어떻게 알 수 있습니까?

나는이 표현을 사용하고 있습니다 :

예를 들어
masonicXML.item.(@style_number == styleNum) 

일치하는 모든 것이 잘 작동하지만 일치가없는 경우 내가 그것을 가지고 말을 XML로 캐스팅하려고 할 때이 오류가있는 경우 잘 형성된다. 따라서 XML로 캐스팅하기 전에 표현식이 일치하는지 확인해야합니다. 나는 된 XMLList 변수로 설정하고이 같은 텍스트() propertie로하는 경우 검사를 시도 :

var defaultItem:XMLList = DataModel.instance.masonicXML.item.(@style_number == styleNum); 
        if(defaultItem.text()) 
        { 
         DataModel.instance.selectedItem = XML(defaultItem); 
        } 

을하지만 여전히 나에게 오류를 theres 경우 어떤 일치를 제공합니다. 일치하는 것이 있으면 잘 작동합니다.

고맙습니다! 내가이 작업을 얻었다

답변

1

, 결과를 확인하는 가장 간단한 방법은리스트의 0 번째 요소를 잡아하고 null를 어떤지를 확인하는 것입니다.

다음은 약간의 개조 된 코드 샘플입니다. defaultItem의 유형을 XMLList에서 XML으로 변경했으며, 목록의 0 번째 요소에 할당하려고합니다.

var defaultItem:XML = 
    DataModel.instance.masonicXML.item.(@style_number == styleNum)[0]; 
if(defaultItem != null) 
{ 
    DataModel.instance.selectedItem = defaultItem; 
} 
0

매트의 널 (null) 검사가 좋은 해결책입니다. (XMLList 내에서 null 항목이있을 가능성은 없지만이를 확인하지는 못했습니다.)

XMLList의 길이를 String으로 캐스팅하지 않고 확인할 수 있습니다.

if ([email protected]_number.length() > 0) 

문자열과 배열의 차이점은 XMLList의 경우 length()이 속성 대신 메서드입니다.

관련 문제