XML is yet another way of expressing recursive, attributed data structures -- something which Lisp has had the capacity to do for decades. The approach taken by xml-parse.el is to read XML data into Lisp structures, and allow those same Lisp structures to be written out as XML. It should facilitate the manipulation and use of XML by Elisp programs.
After setting `c-includes-path' appropriately, you can run the command `M-x c-includes' to find all of the include files that get brought in by a particular source file. It will create a buffer called "*Includes*" that will list all of the included files, nested according to their inclusion depth.