E4X(특히 Flex 3)에서 부모 변수의 자식 요소를 어떻게 감지할 수 있나요?
-
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
!= 정의되지 않은 부분을 생략할 수 있지만 가독성을 위해 그대로 두겠습니다.
제휴하지 않습니다 StackOverflow