Flash AS3 XML - 如何计算 xml 源中的项目数



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

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

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

我已经尝试了很多东西,但我看不到得到这个。

这是我到目前为止所拥有的:

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();
}

这是包含所有编辑的最终脚本。我已经使用 AS5 在 Flash CS3 中对其进行了测试。 它也在工作。也许其他人会发现这很有用。

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();
 }

试试这个

请注意,双点意味着这里的项目节点可能处于我们从 XML 中检索的任何级别(深度),并且它始终返回 XMLList。

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

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

trace( mTip.property1[0].property2[0].property3.length() ); //will return however many property3s there are in mTip.property1[0].property2[0]

请注意,在 XML 类中,length 不像 StringArrayVector 和任何其他数量的类那样是一个属性。这是一种方法。我经常犯这个错误,这绝对是错误的。

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

最新更新