One of the projects I've been working on works with XML data downloaded from the web. Here's a component I designed to help me browse an XML structure. With a little bit more work, you could make a complete XML editor out of it.
http://tony.maro.net/mod.php?mod=downloads&op=showcat&id=2&level=1
It's TXMLTreeView and descends from TTreeView. Just set the filename and then set active=true to load an XML document, even at design time. It will attach the XML node object to each object in the tree. Call "Update" to restructure and redraw the treeview, in case you've changed the XML document. It is limited by the usefullness of the xmlread unit that comes with FPC. I found that sometimes an XML file created with the xmlwrite unit will not read back in with the xmlread unit... Such is the case when a stylesheet is designated. If the component doesn't load the file designated it's likely something like this that causes it.
Like most of my components, it's freeware. I'm currently listing it on my website separately, but it wil be included in the next release of tmpack.