2012-04-01 13 views
1

DaErhalten letzte Auftritt eines Knotens

<nodeList> 
    <crazyNode>Data to be overwrited</crazyNode> 
    <simpleNode>Normal data</simpleNode> 
    <crazyNode>Actual data</crazyNode> 
</nodeList> 

ich das letzte crazyNode (die eine, die Die tatsächlichen Daten enthält) erhalten möchten.

Ich weiß, wie der erste Knoten zuzugreifen, zum Beispiel:

nodeList.crazyNode[0] 

Und ich denke, eine Lösung

nodeList.crazyNode[nodeList.crazyNode.length() - 1] 

Aber aus irgendeinem Grund sein würde Ich mag es nicht, das zu tun, auch ausführlich und vielleicht gibt es eine elegantere Methode.

Dank

Antwort

1

Sie könnten den Code Refactoring besser lesbar zu sein, aber das ist die Art und Weise, es zu tun. Da das Problem selbst den eigentlichen Index bekommen, könnte man einfach eine neue Variable deklariert, um diesen Wert zu halten, etwa so:

var lastCrazyNodeIndex: int = nodeList.crazyNode.length() - 1; 

Sie können dann eine Methode für das Erhalten des letzten Punktes schreiben, hier eine Idee:

public function getLastCrazyNode(nodeList:XML):Object 
{ 
    var lastCrazyNodeIndex: int = nodeList.crazyNode.length() - 1; 

    if(lastCrazyNodeIndex != -1) 
     return nodeList[ lastCrazyNodeIndex ]; 

    return null; 
} 

Auch wenn es die gleiche Idee ist, ist es besser lesbar.

1

Sie so etwas wie verwenden:

nodeList.crazyNode.(childIndex()==length()-1); 

Obwohl es nicht sein kann, keine "schönere" ...