如何在 actionscript 或 as3 中迭代嵌套的 XML 数据?
How to iterate nested XML data in actionscript or as3?
这是我的XML数据
public var treeData:XML = <item name="vCenter Server" type="Server">
<item name = "Datacenter" type="Datacenter" checked="false" moid="datacenter-85">
<item name = "Cluster1" type="ClusterComputeResource" checked="false" value="one" moid="cluster-85">
<item name = "Host1" ctype="Cluster1" type="HostSystem" checked="false" value="one" moid="hostystem-85"/>
<item name = "Host2" ctype="Cluster1" type="HostSystem" checked="false" value="one" moid="hostystem-86"/>
</item>
<item name = "Cluster2" type="ClusterComputeResource" checked="false" value="two" moid="cluster-86">
<item name = "Host3" ctype="Cluster2" type="HostSystem" checked="false" value="two" moid="hostystem-87"/>
<item name = "Host4" ctype="Cluster2" type="HostSystem" checked="false" value="two" moid="hostystem-88"/>
</item>
<item name = "Host 3" type="HostSystem" checked="true" moid="hostystem-89"> </item>
<item name = "Host 4" type="HostSystem" checked="false" moid="hostystem-90"> </item>
</item>
</item>;
如何遍历 actionscript 中的嵌套 xml 数据并显示警报:
如果选中值为真,显示您已选择
如果选中值为false,显示您没有在任何项目中选择。
我已经完成了以下代码,但它不起作用。
override public function isValid():Boolean
{
if(treeData == null){
Alert.show("Empty tree")
return false;
}
else {
for each(var item:XML in treeData)
{
for each(var item:XML in server.item.item)
{
if(item.@checked != true)
{
Alert.show("You have not selected any item");
return false;
}
else if(item.@checked == true){
Alert.show("You have selected item");
return true;
}
}
}
return true;
}
}
我正在对复选框功能 xml 进行迭代
您可以使用 E4X ( ECMAScript for XML 简化生活)从您的 xml 内容中获取所选项目的数量,如下所示:
trace(
xml.*.(@checked == 'true').length() + // level : 1 ( Datacenter ), gives : 0
xml.*.*.(@checked == 'true').length() + // level : 2 ( Cluster1, Cluster2, Host 3, Host 4 ), gives : 1
xml.*.*.*.(@checked == 'true').length() // level : 3 ( Host1, Host2, Host3, Host4 ), gives : 0
);
// gives : 1
有关在 AS3 中使用 XML 的更多详细信息,请查看 here。
希望能帮到你。
这是我的XML数据
public var treeData:XML = <item name="vCenter Server" type="Server">
<item name = "Datacenter" type="Datacenter" checked="false" moid="datacenter-85">
<item name = "Cluster1" type="ClusterComputeResource" checked="false" value="one" moid="cluster-85">
<item name = "Host1" ctype="Cluster1" type="HostSystem" checked="false" value="one" moid="hostystem-85"/>
<item name = "Host2" ctype="Cluster1" type="HostSystem" checked="false" value="one" moid="hostystem-86"/>
</item>
<item name = "Cluster2" type="ClusterComputeResource" checked="false" value="two" moid="cluster-86">
<item name = "Host3" ctype="Cluster2" type="HostSystem" checked="false" value="two" moid="hostystem-87"/>
<item name = "Host4" ctype="Cluster2" type="HostSystem" checked="false" value="two" moid="hostystem-88"/>
</item>
<item name = "Host 3" type="HostSystem" checked="true" moid="hostystem-89"> </item>
<item name = "Host 4" type="HostSystem" checked="false" moid="hostystem-90"> </item>
</item>
</item>;
如何遍历 actionscript 中的嵌套 xml 数据并显示警报:
如果选中值为真,显示您已选择
如果选中值为false,显示您没有在任何项目中选择。
我已经完成了以下代码,但它不起作用。
override public function isValid():Boolean
{
if(treeData == null){
Alert.show("Empty tree")
return false;
}
else {
for each(var item:XML in treeData)
{
for each(var item:XML in server.item.item)
{
if(item.@checked != true)
{
Alert.show("You have not selected any item");
return false;
}
else if(item.@checked == true){
Alert.show("You have selected item");
return true;
}
}
}
return true;
}
}
我正在对复选框功能 xml 进行迭代
您可以使用 E4X ( ECMAScript for XML 简化生活)从您的 xml 内容中获取所选项目的数量,如下所示:
trace(
xml.*.(@checked == 'true').length() + // level : 1 ( Datacenter ), gives : 0
xml.*.*.(@checked == 'true').length() + // level : 2 ( Cluster1, Cluster2, Host 3, Host 4 ), gives : 1
xml.*.*.*.(@checked == 'true').length() // level : 3 ( Host1, Host2, Host3, Host4 ), gives : 0
);
// gives : 1
有关在 AS3 中使用 XML 的更多详细信息,请查看 here。
希望能帮到你。