在flex中使用XML
我正在使用这样的分层xml结构:在flex中使用XML,xml,apache-flex,root,Xml,Apache Flex,Root,我正在使用这样的分层xml结构: <employee name="AAA" group="1"..../> <employee name="BBB" group="1"...> <employee name="CCC" group="1".../> </employee> <employee name="DDD" group="0"... /> <employee name="
<employee name="AAA" group="1"..../>
<employee name="BBB" group="1"...>
<employee name="CCC" group="1".../>
</employee>
<employee name="DDD" group="0"... />
<employee name="EEE" group="0"... />
</employee>
首先,我需要统计所有员工节点(包括根节点)。一定是:5。
我尝试过使用xml..employee.length(),但它返回4(不包括根节点“AAA”)
如果我尝试xml.employee.length()只返回1
然后,我必须创建一个带有特定搜索的XMList。例如,属性为group=“1”的所有节点
同样的问题也会出现,我使用:hitList:xmlsist=xml..employee.(@group==“1”)并返回正确的结果,但它不计算根节点的数量(在这种情况下,必须包括它)
如何执行此操作(包括根节点)
提前谢谢
Cristian问题在于XML变量与根XML标记相同。如果你是莱特
xml..employee.length()
这意味着您要分析根节点下的所有节点。变量xml是您的根节点
要获得正确的结果,需要在结构中添加一个空的虚拟根节点
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="955" minHeight="600" creationComplete="init()">
<fx:Declarations>
<fx:XML id="xml" xmlns="">
<root>
<employee name="AAA" group="1">
<employee name="BBB" group="1">
<employee name="CCC" group="1"/>
</employee>
<employee name="DDD" group="0"/>
<employee name="EEE" group="0"/>
</employee>
</root>
</fx:XML>
</fx:Declarations>
<fx:Script>
<![CDATA[
private function init():void
{
var len:int = xml..employee.length(); //gives 5
var hitList:XMLList = xml..employee.(@group == "1"); //gives 3 nodes
trace();
}
]]>
</fx:Script>
</s:Application>
第一个标记似乎不正确。它不应该以“/”结束,谢谢安东,我可以按照你的建议修复它。