Flash AS3 XML-如何计算XML提要中的项目数?

Flash AS3 XML-如何计算XML提要中的项目数?,xml,actionscript-3,flash,Xml,Actionscript 3,Flash,这是我第一次尝试使用Flash和读取xml文件。我已经加载了提要,甚至将提要输出文本放入文本框中 最后一点是我想得到从xml提要返回的节点总数。此外,XML提要是wordpress类别特定的提要 例如,该结构类似于频道->项目->标题。所以我想我要计算feed中“item”元素的数量 我试过很多东西,但我看不出能得到这个 以下是我到目前为止的情况: var xmlLoader:URLLoader = new URLLoader(); var xmlData:XML = new XML(); x

这是我第一次尝试使用Flash和读取xml文件。我已经加载了提要,甚至将提要输出文本放入文本框中

最后一点是我想得到从xml提要返回的节点总数。此外,XML提要是wordpress类别特定的提要

例如,该结构类似于频道->项目->标题。所以我想我要计算feed中“item”元素的数量

我试过很多东西,但我看不出能得到这个

以下是我到目前为止的情况:

var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();

xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
xmlLoader.load(new URLRequest("{my rss feed}"));

/* This loads the XML */
function LoadXML(e:Event):void {
     xmlData = new XML(e.target.data);
     parseData(xmlData);
}

 // Here is where i need to get the total number of nodes from my xml file;
 // The reason is i want to give my random range function a "maximum" value.
 // I'm pulling a random post from the feed

 function randomRange(minNum:Number, maxNum:Number):Number 
 {
      return (Math.floor(Math.random() * (maxNum - minNum + 1)) + minNum);
 }
 var randomNum = randomRange(0, 3);



function parseData(mTip:XML):void {
     flashTip.htmlText = mTip.channel.item[randomNum].description.text();
}
这是包含所有编辑的最终脚本。我已经在Flash CS5中使用AS3对其进行了测试。它也在工作。也许其他人会觉得这很有用

var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();

xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
xmlLoader.load(new URLRequest("{my wordpress rss feed url}"));

/* This loads the XML */
function LoadXML(e:Event):void {
xmlData = new XML(e.target.data);
parseData(xmlData);
 }

 /* This gets the data for today's tip */
 function parseData(mTip:XML):void {

     var itemXMLList:XMLList = XMLList(mTip..item);
     var count:int = itemXMLList.length();
     var finalcount:int = count - 1;
     //trace(finalcount);

 function randomRange(minNum:Number, maxNum:Number):Number 
 {
return (Math.floor(Math.random() * (maxNum - minNum + 1)) + minNum);
 }
 var randomNum = randomRange(0, finalcount);
 //trace(randomNum);

 flashTip.htmlText = mTip.channel.item[randomNum].description.text();

 }

如果我正确理解了您的问题,您可以使用
length()
方法获得它

trace( mTip.property1[0].property2[0].property3.length() ); //will return however many property3s there are in mTip.property1[0].property2[0]
请注意,在XML类中,
length
String
Array
Vector
和任何其他数量的类不同,它不是一个属性。这是一种方法。我经常犯这个错误,这绝对是错误的

如果您想要文档中的所有节点,而不仅仅是一个特定的节点,我不知道有什么快速的方法(不是说没有)。我可能只是在每个节点上循环并手动计数。

试试这个

请注意,双点表示此处的项节点可能位于我们从XML检索的任何级别(深度),并且它总是返回XMLList

var itemXMLList:XMLList = XMLList(mTip..item);
var count:int = itemXMLList.length();