That all sounds very strange. You'd probably be better off keeping your data in the browser as Ext.data.Nodes and only serializing it to XML when you absolutely have to. By keeping the data unserialized it'd make things like creating your tree much simpler.
Using XmlStore doesn't make sense either. Stores are flat, trees are not.
If you have an XML string then you could parse it using something like this:
It probably doesn't make sense to write your own loader, all you need is something to convert XML to nodes then append those nodes to the tree. The method parseXml() in XmlTreeLoader shows you how.