0

我在 AS3 中有一个 XML 对象,其格式如下:

<data>
  <nodes>
    <item></item>
    <item></item>
    ...
  </nodes>
  <nodes>
    <item></item>
    <item></item>
    ...
  </nodes>
  ...
</data>

我的问题是我想将节点名称(“nodes”和“item”)重命名为更相关的名称,例如“ nodes ”可以是“ author ”,“ item ”可以是“ book ”。

那么在 AS3 中使用 E4X 执行此操作的最佳方法是什么?

4

2 回答 2

7

您可以使用setName()AS3 中的 XML Object 的方法。

例子:

   //extract all nodes named "nodes"

    var l:XMLList=data..nodes;
    for each(var n:XML in l){
       n.setName("new_node_name");
    }

    //extract all nodes named "item"

    var l2:XMLList=data..item;
    for each(var n2:XML in l2){
       n2.setName("new_item_name");
    }
于 2009-05-11T08:12:36.010 回答
0

据我所知,没有办法在 ActionScript 中本地执行此操作,但是这里有一个简单的函数可以完成此操作。首先,我将其转换为字符串,然后使用简单的正则表达式来查找和替换所有实例。

function replaceAll(findTag:String, replaceWith:String, source:XML):XML
    {
        var xmls:String = source.toXMLString();
        var findPattern:RegExp = new RegExp(findTag, "g");
        xmls = xmls.replace(findPattern, replaceWith);
        return new XML(xmls);
    }

希望能帮助到你。

于 2009-05-11T05:47:10.820 回答