如果我有一个如下所示的字符串,我可以使用它来引用XML中的节点吗?我将如何这样做?
var loc:String = "myXML.section.header";
答案 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