gpt4 book ai didi

xml - 查明 AS3 的 XMLList 是否包含字符串作为节点值

转载 作者:数据小太阳 更新时间:2023-10-29 02:55:14 24 4
gpt4 key购买 nike

有没有等同于 Array.indexOf 的 XMLList?

例如——

var array:Array = ['one','two'];
trace(array.indexOf('two')); // returns 1, since it's at the second position
trace(array.indexOf('three')); // returns -1, since it isn't found

……对吧?但如果我有这个怎么办 -

var xml:XML = <list><item>one</item><item>two</item><list>
var xmlList:XMLList = list.item;

必须有一种比遍历所有节点更简单的方法来检查 XMLList 中的某个节点是否具有特定值,对吗?类似于 -

xmlList.indexOfChildByNodeValue('two'); // returns 1, because it's the second child
xmlList.indexOfChildByNodeValue('three'); // returns -1, because it doesn't match any children

有道理吗?

最佳答案

我整理了一个演示,说明如何在不循环的情况下进行操作。尽管它确实需要更多的前期工作。不过,如果您要经常检查值,它会带来返回。

<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" applicationComplete="_init();">
<fx:Declarations>
<fx:XML id="movieList" source="http://www.movies.com/rss-feeds/jen-yamato-reviews-rss" />
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.logging.ILogger;
import mx.logging.Log;
import mx.logging.LogEventLevel;
import mx.logging.targets.TraceTarget;

public static const MOVIE_TITLE:String = "Inception";

private var _logger:ILogger = Log.getLogger("Sandbox");

private function _init() :void
{
var traceTarget:TraceTarget = new TraceTarget();
traceTarget.level = LogEventLevel.ALL;
Log.addTarget(traceTarget);

var xmlList:XMLList = movieList..item;

var firstItem:XML = movieList..item[0];
var firstItemIndex:int = firstItem.childIndex();
_logger.info("First Item Index: " + firstItemIndex);

var item:XML = xmlList.(title == MOVIE_TITLE)[0];
_logger.info("Contains: " + xmlList.contains(item) + " // " + item.childIndex());

var actualIndex:int = (item.childIndex() - firstItemIndex);
_logger.info("Actual Index: " + actualIndex);

_logger.info("Result: " + xmlList[actualIndex]);
}
]]>
</fx:Script>

</s:Application>

基本思想是存储第一个 item 的索引,然后使用 E4X 搜索从匹配结果的 childIndex() 中减去它。

关于xml - 查明 AS3 的 XMLList 是否包含字符串作为节点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3332358/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com