在这里对ActionScript中的XML感到困惑:
我有一个XML变量声明为:
public static var thisXML:XML;
我正在使用包含以下内容的函数初始化我的XML:
thisXML.white.john = false;
thisXML.black.john = false;
thisXML.white.bill = false;
thisXML.black.bill = false;
thisXML.white.pete = false;
thisXML.black.pete = false;
然后我有以下字符串变量:
public static var blackWhite:String;
public static var thisName:String;
我想在'if'语句中访问我的XML(我知道这不对):
if (!thisXML.(blackWhite).(thisName)) {
//do something
thisXML.(blackWhite).(thisName) = true;
}
所以,我尝试了很多方法,包括:
thisXML.[blackWhite].[thisName];
thisXML.node[blackWhite].node[thisName];
thisXML.descendant[blackWhite].descendant[thisName];
......但我知道这不对。我也意识到XML不支持布尔值,所以我可能需要使用字符串“true”和“false”,但这不是我的问题。问题是使用变量访问特定节点。
应该怎么做?
感谢阅读。
编辑: - 我的XML现在看起来像这样......
<root>
<Documents documentName = {thisDocument}>
<White>
<John>false</John>
<Pete>false</Pete>
<James>false</James>
</White>
<Black>
<John>false</John>
<Pete>false</Pete>
<James>false</James>
</Black>
</Documents>
</root>
答案 0 :(得分:3)
通过变量名访问xml子项的示例:
var xml:XML =
<root>
<white>
<john>john white</john>
<bill>bill white</bill>
<pete>pete white</pete>
</white>
<black>
<john>john black</john>
<bill>bill black</bill>
<pete>pete black</pete>
</black>
</root>
var colorName:String = "white";
var menName:String = "bill";
//example using []
var nodeTextVar:String = xml[colorName][menName][0];
trace(nodeTextVar);
//example using XMLList.child(name)
nodeTextVar = xml.child(colorName).child(menName)[0];
trace(nodeTextVar);
输出:
bill white
bill white