0

以下のような文字列がある場合、それを使用して XML 内のノードを参照できますか?また、どのようにすればよいですか?

var loc:String = "myXML.section.header";
4

2 に答える 2

0

あなたが求めていることはおそらく不可能ですが、他の質問に合わせて文字列を少し変更します

myXML が XML を格納する AS3 変数であると仮定します。

var sec:String = 'section'; var head:String = 'header';

myXML[秒][頭]

于 2013-06-26T17:29:46.483 に答える
0

各「。」で文字列を分割できます。そして、部分文字列ごとに、それに等しい localName を持つすべてのノードを見つけることができます。

要するに、たとえば E4X 構文を使用すると、次のような関数を作成できます。

    function getXMLList(xml:XML, search:String):XMLList {
        var filters:Array = search.split("."); // break your string appart

        // search for all node matching the first name using .() function on XML
        var xl:XMLList = xml.(localName()==filters[0]); 

        // loop over the previous result if there is something found
        for (var i:int=1, l:int=filters.length;i<l && (xl.length() > 0);i++) {
           xl = xl.children().(localName()==filters[i]);
        }

        return xl;
    }

それを使用して:

     var xl:XMLList = getXMLList(myXML, 'root.nodeA.nodeB');

ここでは、wonderfl で動作する実際の例を示します: http://wonderfl.net/c/sed9

于 2013-06-26T19:06:04.993 に答える