我的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
。显然我错过了什么,但它是什么?
答案 0 :(得分:2)
试试这个
xml..opt_out_flag
它将搜索所有事件
答案 1 :(得分:1)
我相信你想使用xml.*.hasOwnProperty('opt_out_flag')
而不是你目前使用的那些。
答案 2 :(得分:0)
可以保证<opt_out_flag/>
始终位于<question>
元素的第一个孩子中吗?如果是这样,以下内容应该有效:
(免责声明:我知道这适用于属性,但我不知道它是否适用于子元素)
if( "opt_out_flag" in xml.children()[0] ) {
doSomething();
}
答案 3 :(得分:0)
你可以使用后代方法(递归树)来找到标签吗?
var optOutNodes:XMLList = xml.descendants("opt_out_flag");
if(optOutNodes.length())
{
//do code here
}
希望这就是你要找的东西。
答案 4 :(得分:0)
您可以使用
var optOut:Boolean = xml..opt_out_flag != undefined
你可以省略!=未定义的部分,但为了便于阅读,我会留在那里。