глянь, такой тест вполне себе работает:

Код:
class CDataNode extends XML
{
public function CDataNode(text:String)
{
super(text);
}
public function byStr(index:String):CDataNode
{
for (var i = 0; i<=childNodes.length; i++)
{
var node:CDataNode = childNodes[i];
if (node.nodeName == index)
{
return node;
}
}
return null;
}
}

Код:
var myXML:CDataNode = new CDataNode("<body>test</body>");
var bodyNode:CDataNode = myXML.byStr("body");
trace( "bodyNode : " + bodyNode );//bodyNode : <body>test</body>
что происходит у тебя из этих обрывков ни понять не протестировать невозможно..