2010-11-04 126 views
0

我觉得这个问题有一个非常简单的答案,我只是忽略它。我需要获得一个指向XML的指针。我可以得到一个指向父节点的指针,一切正常,但试图获得一个指向没有子节点的节点的指针只返回该节点的值。如何获取XML对象引用而不是as3中的值

下面是一个例子:

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

因此,要获得一个指向“parentNode”,我想说的是这样的:

var parentNode = xml.parentNode; 

如果您跟踪,这将是上面显示的XML没有身体标签。

下面我将试图获得一个指向子节点:

var subNode = xml.parentNode.subNode; 

跟踪子节点将只是价值并没有指向原始XML对象,所以编辑子节点VAR只会改变其值,而不是原始XML对象中的值。

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

+0

如果你不会是有帮助的,离开了。 – Jordan 2010-11-04 19:59:24

回答

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> 
+0

我明白了,字符串值是“c”节点的孩子。我错过了那部分。谢谢! – Jordan 2010-11-04 20:48:11

1

其实,如果你跟踪节点,它将被浇铸为字符串,得到childnode textvalue,而不是实际的节点。如果将节点放入XML类型的变量中,它将成为实际的节点。

所以

node:XML = c; will be the node. 
node:String = c; will be the textvalue of that node. 
相关问题