替换AS3中的xml子节点值

替换AS3中的xml子节点值,xml,actionscript-3,Xml,Actionscript 3,我正在尝试更新XML结构的子节点中的值。新值应该来自输入文本字段,其实例名称与我应该更新的节点的属性值相同 例如,当聚焦名为“label10”的文本字段时,我应该编辑节点: <label id="label10"> <eng>Description</eng> <de>DE Description</de> </label> 现在我的问题是,我希望替换子节点eng或de的内容,这取决于在名为VarHolde

我正在尝试更新XML结构的子节点中的值。新值应该来自输入文本字段,其实例名称与我应该更新的节点的属性值相同

例如,当聚焦名为“label10”的文本字段时,我应该编辑节点:

<label id="label10">
    <eng>Description</eng>
    <de>DE Description</de>
</label>
现在我的问题是,我希望替换子节点eng或de的内容,这取决于在名为VarHolder的静态类中定义的变量,但我不能这样做

我尝试在回调函数中使用这一行:

private function onFocusOut (evt:FocusEvent):void {
        var nodeToModify:XML = xmlFillData.label.(@id==evt.target.name)[0];
        trace ("nodeToModify is " +nodeToModify );
}
 nodeToModify.replace (VarHolder.activeLang , evt.target.text);
但是如果我跟踪nodeToModify,这就是结果(标记消失)


存款准备金率
取消描述

有什么帮助吗


编辑(并解决):尝试实现@jens answer。 我就是这样做的

 nodeToModify.replace (VarHolder.activeLang,  new XML("<" + VarHolder.activeLang + ">" +  evt.target.text + "</" + VarHolder.activeLang + ">"));
nodeToModify.replace(VarHolder.activeLang,新XML(“+evt.target.text+”);
XML.replace()
希望第二个参数是XML对象,然后转换为(XML-)字符串。含义:它将“
Description
”替换为“
rrr
”,并按预期工作。您需要向它传递一个XML对象或传递它“
rrr
”。如果
VarHolder.activeLang
的值明显为'eng',则可以使用:

nodeToModify.replace (VarHolder.activeLang ,  "<" + VarHolder.activeLang + ">" + 
                           evt.target.text + "</" + VarHolder.activeLang + ">");
nodeToModify.replace(VarHolder.activeLang,“”+
evt.target.text+“”);
有关XML.replace()的详细信息,请参阅此链接:

thx@jens,我在发布问题之前尝试了这个解决方案,我希望有另一个解决方案。顺便说一句,我放弃了它,因为在追踪它的时候我读到了:Engrr/eng有没有办法摆脱它?
nodeToModify.replace (VarHolder.activeLang ,  "<" + VarHolder.activeLang + ">" + 
                           evt.target.text + "</" + VarHolder.activeLang + ">");