Actionscript按子节点过滤xml';s属性
as4新手,正在尝试找出如何通过子节点的属性过滤xml。类似下面的内容Actionscript按子节点过滤xml';s属性,xml,actionscript,Xml,Actionscript,as4新手,正在尝试找出如何通过子节点的属性过滤xml。类似下面的内容 <root> <level1 id="1"> <level2> <sample class="C1" /> <sample class="C2" /> <sample class="C3" /> </level2> </level1> <level1 id="2
<root>
<level1 id="1">
<level2>
<sample class="C1" />
<sample class="C2" />
<sample class="C3" />
</level2>
</level1>
<level1 id="2">
<level2>
<sample class="C1" />
<sample class="C3" />
</level2>
</level1>
<level1 id="3">
<level2>
<sample class="C1" />
</level2>
</level1>
<level1 id="3">
<level2>
<sample class="C2" />
</level2>
</level1>
</root>
目标是获得包含class=“C1”示例的LEVEL1和LEVEL2的列表。类似以下内容的内容作为结果XMLList
<root>
<level1 id="1">
<level2>
<sample class="C1" />
<sample class="C2" />
<sample class="C3" />
</level2>
</level1>
<level1 id="2">
<level2>
<sample class="C1" />
<sample class="C3" />
</level2>
</level1>
<level1 id="3">
<level2>
<sample class="C1" />
</level2>
</level1>
</root>
或
在Actionscript 3.0中:
var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();
xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
xmlLoader.load(new URLRequest("put-your-link-to-your-xml-file-here"));
function LoadXML(e:Event):void {
xmlData = new XML(e.target.data);
trace(xmlData); // traces the raw data
trace(root.level1.level2); // traces level 2
trace(root.level1.level2.text()); // can trace the text node of level 2, kind of similar
trace(root.level1.@class); // traces the "class" attribute inside level 1
var level-1-List:XMLList = root.level1; //gets an array of all level1
for each (var itemElement:XML in level-1-List) {
trace(itemElement); // loop through list and trace it
}
}
我会这样做:
var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();
xmlLoader.addEventListener(Event.COMPLETE, parseXML);
xmlLoader.load(new URLRequest("put-your-link-to-your-xml-file-here"));
function parseXML(e:Event):void {
xmlData = new XML(e.target.data);
xmlData.ignoreWhiteSpace = xmlData.ignoreComments = true;
var xmlList:XMLList = new XMLList();
var i:uint = 0;
var l:uint = xmlData.level1.length();
while(i<l)
{
var j:uint = 0;
var m:uint = xml.level1[i].level2.sample.length();
while(j<m)
{
if(xml.level1[i].level2.sample[j].@cls == "C1")
{
xmlList += xml.level1[i];
break;
}
++j;
}
++i;
}
trace(xmlList);
var-xmlLoader:URLLoader=new-URLLoader();
var xmlData:XML=newxml();
addEventListener(Event.COMPLETE,parseXML);
load(新的URLRequest(“在此处放置指向xml文件的链接”);
函数parseXML(e:Event):void{
xmlData=新的XML(e.target.data);
xmlData.ignoreWhiteSpace=xmlData.ignoreComments=true;
var xmlList:xmlList=new xmlList();
变量i:uint=0;
var l:uint=xmlData.level1.length();
而(我是“as4”?也许你在AS3中想到了E4X?你好,Eatdoku,你有更近的距离吗?
var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();
xmlLoader.addEventListener(Event.COMPLETE, parseXML);
xmlLoader.load(new URLRequest("put-your-link-to-your-xml-file-here"));
function parseXML(e:Event):void {
xmlData = new XML(e.target.data);
xmlData.ignoreWhiteSpace = xmlData.ignoreComments = true;
var xmlList:XMLList = new XMLList();
var i:uint = 0;
var l:uint = xmlData.level1.length();
while(i<l)
{
var j:uint = 0;
var m:uint = xml.level1[i].level2.sample.length();
while(j<m)
{
if(xml.level1[i].level2.sample[j].@cls == "C1")
{
xmlList += xml.level1[i];
break;
}
++j;
}
++i;
}
trace(xmlList);