通过字符串访问XML节点

时间:2013-06-26 17:19:53

标签: xml string actionscript-3

如果我有一个如下所示的字符串,我可以使用它来引用XML中的节点吗?我将如何这样做?

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

2 个答案:

答案 0 :(得分:0)

你问的可能是不可能的,但我会稍微修改字符串以符合你的其他问题

假设myXML是存储xml的AS3变量。

  

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

     

myXML [秒] [头]

答案 1 :(得分: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