如何获得XML对象引用而不是as3中的值

时间:2010-11-04 19:48:35

标签: xml actionscript-3 pointers reference

我觉得这个问题有一个非常简单的答案,我只是忽略它。我需要获得一个XML的指针。我可以得到一个指向父节点的指针,一切正常但是尝试获取一个指向没有子节点的节点只返回该节点的值。

以下是一个例子:

<body>
  <parentNode>
    <subNode>value</subNode>
  </parentNode>
</body>

所以要获得一个指向“parentNode”的指针,我会这样说:

var parentNode = xml.parentNode;

如果你追踪它是上面显示的没有body标签的xml。

下面我将尝试获取指向subNode的指针:

var subNode = xml.parentNode.subNode;

跟踪子节点只是值,并且没有指向原始xml对象的指针,因此编辑subNode var只会更改其值,而不会更改原始XML对象中的值。

如何获取指向子节点的指针,以便可以对其进行编辑以更改原始xml对象?

2 个答案:

答案 0 :(得分:1)

这是一个代码示例:

var xml : XML = <a><b><c>test</c></b></a>;
var cNode : XML = XML(xml.b.c);
trace("1:", cNode.toXMLString());
cNode.setChildren("Hello King Kong");
trace("2:", cNode.toXMLString());
trace("3:", xml);

//output :
//1: <c>test</c>
//2: <c>Hello King Kong</c>
//3: <a>
//  <b>
//    <c>Hello King Kong</c>
//  </b>
//</a>

答案 1 :(得分:1)

实际上,如果跟踪节点,它将被转换为字符串,获取childnode textvalue,而不是实际节点。如果将节点放在XML类型的变量中,它将是实际节点。

所以

node:XML = c; will be the node.
node:String = c; will be the textvalue of that node.