1

Flex3およびe4Xで可変パスを解析する方法を知る必要があります。たとえば、1つの要素の名前だけが異なる2つのXML文字列があります。

<NameOfRoot>
    <NameOfChild1>
        <data>1</data>
    </NameOfChild1>
</NameOfRoot>

<NameOfRoot>
    <NameOfChild2>
        <data>2</data>
    </NameOfChild2>
</NameOfRoot>

現在、私は次のような変数にアクセスしています。

var data1:String = NameOfRoot.*::NameOfChild1.*::data;
var data2:String = NameOfRoot.*::NameOfChild2.*::data;

「NameOfChild3」が導入された場合にコードを更新する必要がないように、このタスクをより抽象的にしたいと思います。例えば:

var data:String = NameOfRoot.*::{variable}.*::data;

誰かがこれをどのように行うことができるかについての洞察を持っていますか?

4

3 に答える 3

1

これも機能します:

var data:String = NameOfRoot..data;

ただし、複数のデータノードがある場合は、いくつかのものを整理する必要があります。

于 2010-01-18T15:22:51.530 に答える
1

プロパティを使用しchildます(LiveDocsの例はこちら):

var tagName:String = "NameOfChild1";
var data:String = NameOfRoot.child(tagName).data;

それは名前空間がないことです-あなたの場合にそれが必要かどうかはわかりませんが、私はあなたがいくつか*::のを追加すると思いますか?

于 2010-01-18T06:36:55.683 に答える
0

「。*」のように見えます。操作は動作します。これがこの問題を処理する最も簡単な方法であるかどうか疑問に思います。

var data:String = NameOfRoot.*.*::data;
于 2010-01-17T23:44:15.823 に答える