I have a fairly large MVC PHP web app (custom, no framework) that uses a several-hundred-line XML file for configuration. The config data has a fairly complex structure, which is very elegantly represented in XML but not so easily read or written using the DOM. All reading and writing of config data goes through a Config class, which has accessor methods for each type of config data. Since each XML node is different, most of the methods use their own custom code. This class is currently around 2000 lines long and I don't like it. A database is not available.
It has occurred to me that perhaps a better way to persist config data would be to create some config classes and use object serialization to a file.
What are some best practices for handling complex config data?