문제

xmllist 항목에 액세스하고 AM XML 객체로 변환하려고합니다.

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

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);
                    }

그러나 일치하지 않으면 여전히 오류가 발생합니다. 경기가 있으면 잘 작동합니다.

감사해요!

도움이 되었습니까?

해결책

내 경험상 결과를 확인하는 가장 간단한 방법은 목록의 0 번째 요소를 잡고 그것이 null.

다음은 몇 가지 조정이있는 코드 샘플입니다. 내가 유형을 변경했음을 주목하십시오 defaultItem ~에서 XMLList 에게 XML, 그리고 나는 그것을 목록의 0 번째 요소에 할당하고 있습니다.

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

다른 팁

좋아, 나는 이것으로 일할 수있게되었다 :

if(String(defaultItem.@style_number).length)

Matt 's Null Check는 좋은 솔루션입니다. (xmllist 내에 널 아이템을 가질 가능성이 없다면 .. 아마도 이것을 확인하지는 않았을 것입니다.)

xmllist의 길이를 문자열로 캐스팅하지 않고 확인할 수도 있습니다.

if (defaultItem.@style_number.length() > 0)

문자열과 배열의 차이점은 xmllist를 사용하는 것입니다. length() 속성 대신 방법입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top