E4X(특히 Flex 3)에서 부모 변수의 자식 요소를 어떻게 감지할 수 있나요?

StackOverflow https://stackoverflow.com/questions/1154916

  •  18-09-2019
  •  | 
  •  

문제

다음과 같은 XML이 있습니다.

<question>
    <type_elt>
        <opt_out_flag />
    </type_elt>
</question>

type_elt 요소 이름이 아닙니다.그것은 수 있습니다 <single>, <multiple> 또는 런타임에 결정되는 다른 것.그렇다면 어떻게 이 물질의 존재를 감지할 수 있을까요? opt_out_flag 요소?

나는 이것을 시도했다 (어디 xml 을 말한다 question 요소):

if (xml.*.opt_out_flag) {
    do_something();
}

하지만 없는 경우에도 opt_out_flag 위의 표현식이 반환됩니다. true.분명히 뭔가 빠졌는데 그게 뭐죠?

도움이 되었습니까?

해결책

나는 당신이 사용하고 싶어 믿습니다 xml.*.hasOwnProperty('opt_out_flag') 현재 사용하고 있는 것보다

다른 팁

이 시도

xml..opt_out_flag

모든 발생을 검색합니다.

그렇다고 보장할 수 있나요? <opt_out_flag/> 항상 첫 번째 자식에 속합니다. <question> 요소?그렇다면 다음과 같은 작업이 작동합니다.

(부인 성명:이것이 속성과 함께 작동한다는 것을 알고 있지만 하위 요소와도 작동하는지 모르겠습니다)

if( "opt_out_flag" in xml.children()[0] ) {
    doSomething();
}

태그를 찾기 위해 하위 메소드(트리 아래로 재귀)를 사용할 수 있습니까?

var optOutNodes:XMLList = xml.descendants("opt_out_flag");

if(optOutNodes.length())
{
   //do code here
}

이것이 당신이 찾고 있는 것이기를 바랍니다.

당신이 사용할 수있는

var optOut:Boolean = xml..opt_out_flag != undefined

!= 정의되지 않은 부분을 생략할 수 있지만 가독성을 위해 그대로 두겠습니다.

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