0

AS3

XMLファイルに基づいて画像を動的にロードしようとしています。Imがこだわった問題は、指定された識別子から見つかったノードを返すことになっている関数です。次のコードのように

function getStudyById(id:String):XMLNode{
    var xl:XMLList = xml.bacase.(@name==id); // xml is a global variable
    return xl.children()[0]; // xl[0] does not work either
    // return (xl.length()>0) ? xl[0] : null;
}

XMLは次のようになります。

<root>
    <bacase name="a" />
    <bacase name="b" />
</root>

あなたの質問を予想して、XMLがロードされると、それはすべてxmlローダーのCOMPLETEイベントで行われます。

ここで問題となるのは、XMLが空であるように見えても、xmlが正しく入力されており、識別子がノードの1つと確実に一致していることです。クエリされたノードを複製すると、リストは2つのノードを含むものとして正しくトレースされます。したがって、一致するものが1つしかない場合、XMLListは作成されず、結果にはXMLNodeデータ型のデータが含まれると思います。

これを確認する人はいますか?もしそうなら、クエリが常にXMLListタイプを返すようにする方法はありますか?

ありがとうArtur

4

1 に答える 1

0

XMLNode古い でのみ動作しflash.xml.XMLDocumentます。またはXMLを使用する場合、単一のノードのタイプになります。XMLXMLList

これは私にとってはうまくいきます:

var xml:XML = <root>
        <bacase name="a" />
        <bacase name="b" />
    </root>;

var p:XMLList = xml.bacase.(@name == "a");

if (p.length() > 0) return XML(p[0]);
于 2011-05-16T15:02:36.463 に答える