【发布时间】:2010-09-13 09:31:27
【问题描述】:
给定以下 xml:
<form>
<personalDetails>
<name>John</name>
</personalDetails>
<financeDetails>
<income>
<salary>1000000</salary>
</income>
</financeDetails>
</form>
我知道可以按如下方式创建上述xml(非常酷):
var xml:XML = <form />;
xml.personalDetails.name = "John";
xml.financeDetails.income.salary = 1000000;
但是,如果我们不知道节点的名称或存在多少级别怎么办?我们可以使用下面的方法来完成这个,但感觉应该有一个更简单、更好的方法来做到这一点:
var xml:XML = <form />;
updateXml(xml, "personalDetails.name", "John");
updateXml(xml, "financeDetails.income.salary", "1000000");
function updateXml(xml:XML, path:String, data:String):void {
var nodesArray:Array = path.split(".");
switch (nodesArray.length) {
case 1:
xml[nodesArray[0]] = data;
break;
case 2:
xml[nodesArray[0]][nodesArray[1]] = data;
break;
case 3:
xml[nodesArray[0]][nodesArray[1]][nodesArray[2]] = data;
break;
}
}
【问题讨论】:
标签: javascript xml apache-flex actionscript e4x