如果我有一个像下面这样的字符串,我可以用它来引用 XML 中的节点吗?我将如何去做?
var loc:String = "myXML.section.header";
如果我有一个像下面这样的字符串,我可以用它来引用 XML 中的节点吗?我将如何去做?
var loc:String = "myXML.section.header";
您可以在每个 '.' 处拆分字符串。然后对于每个子字符串,您可以找到与其 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
您要问的可能是不可能的,但是我会稍微修改一下字符串以符合您的其他问题
假设 myXML 是存储您的 xml 的 AS3 变量。
var sec:String = 'section'; var head:String = 'header';
myXML[秒][头]