私は入力として持つ複数のパラメータに基づいてXMLをフィルタリングしようとしています。複数のパラメータに基づいてXMLをフィルタリングする - Flex
私はそれらをフィルタリングして処理できるように、一致するレコードを持つ親ノードを特定しようとしています。
<A>
<B1>
<C1>
<D1>111</D1>
<E1>111</E1>
<F1>
<G1>111</G1>
<H1>
<I1>111</I1>
<J1>111</J1>
</H1>
</F1>
</C1>
</B1>
<B1>
<C1>
<D1>222</D1>
<E1>333</E1>
<F1>
<G1>222</G1>
<H1>
<I1>222</I1>
<J1>222</J1>
</H1>
</F1>
</C1>
</B1>
<B1>
<C1>
<D1>333</D1>
<E1>333</E1>
<F1>
<G1>333</G1>
<H1>
<I1>333</I1>
<J1>333</J1>
</H1>
</F1>
</C1>
</B1>
</A>
は私がノードD1とE1とI1のために一致させる必要があると言うことができますが、すべてのパラメータから「AND」一致がある場合、私は結果のため<B1>
からノード権利を持っている必要があります。
<B1>
<C1>
<D1>222</D1>
<E1>333</E1>
<F1>
<G1>222</G1>
<H1>
<I1>222</I1>
<J1>222</J1>
</H1>
</F1>
</C1>
</B1>
私がデータを取得するには、以下の組み合わせをUSNGしようとしています:
xml..*.((hasOwnProperty("D1") && D1 == "222")&&hasOwnProperty("E1") && D1 == "333"))
しかし、いくつかのギャップがあると思います。誰かが記入して、どこが間違っているのか、XMLをフィルタリングするためのより良いアプローチがあるのか教えてください。 また、filterFunction(コレクション)が助けてくれるものがありますか?
ああ、それはきれいです。 – Bob
それで解決しました、ありがとうございます。 – Bob
私は、クエリ部分を動的に作成して、パラメータ部分を構築するためにパラメータとキーが引き継ぐようにしています。単に表示する: 'var q1:String ="子孫(\ "E1")== \ "111 \") ";' //動的クエリービルディング。これはデモ用です。 'Alert.show(" Query >> "+ q1.toString());//出力:子孫( "E1")== "111" ' \t \t \t ' var r2:XMLList = xmlData .. *。(子孫( "E1")== "111"); //正しいanswer' 'VARのR1:XMLListです=です。xmlData .. *(q1.toString()); //奇妙な応答を与え、フィルタリングされませんanything.' **ここに欠けているものですかこれです。間違ったアプローチ** ** – Bob