Benötigen Sie Hilfe bei Xmllist in Flex
-
15-11-2019 - |
Frage
Ich habe XML mit der folgenden Struktur, zum Beispiel generasacodicetagpre.
Alle Kinder haben den Namen "Knoten".Was ich brauche, ist, eine Xmllist (oder XML, egal) mit derselben Hierarchie, aber nur Knoten mit der Flagge "True" enthalten.
Das Ergebnis, das ich für mein Beispiel brauche, ist: generasacodicetagpre.
Gibt es nette Möglichkeit, dies mit E4X (ohne itertieren durch Schleife) zu tun?Ich habe versucht, das Folgende zu tun: XML.Node. (@ flag=="true"), aber das Ergebnis in diesem Fall ist: generasacodicetagpre.
Alle Ideen?Danke!
Lösung
Here a one liner in e4x
as you ask :
xml..node.((@flag=="false") && (delete parent().children()[valueOf().childIndex()]))
it delete the node to the current XML
so pay attention to have a copy of your current XML.
By the way you should know that e4x
just do a loop under the hood, and that one liner will not be faster than a custom loop.
var xml:XML=<root>
<node id="1" flag="false"/>
<node id="2" flag="true"/>
<node id="3" flag="false"/>
<node id="4" flag="false"/>
<node id="5" flag="true">
<node id="5.1" flag="false"/>
<node id="5.2" flag="true"/>
<node id="5.3" flag="false"/>
<node id="5.4" flag="true"/>
</node>
<node id="6" flag="true"/>
<node id="7" flag="false">
<node id="7.1" flag="false"/>
<node id="7.2" flag="true"/>
<node id="7.3" flag="false"/>
<node id="7.4" flag="true"/>
</node>
<node id="8" flag="false"/>
</root>
trace("-- before --")
trace(xml.toXMLString())
xml..node.((@flag=="false") && (delete parent().children()[valueOf().childIndex()]))
trace("\n-- after --")
trace(xml.toXMLString())
Andere Tipps
It didn't kill those nodes, cause your condition xml.node.(@flag="true") works only on the direct children of root, you have to make another one for the children of node