Well, I'd put some data to non-xml member variables and display some directly in the UI... The idea with (2) is that unlike in (1), the data would be in local variables (QDomElement objects or maybe lists thereof) whose names I'd already know, thereby removing the need to traverse the structure with if-tagname comparisons and while-nextsibling loops.