- Install XML::Rules
- Run XML::Rules->inferRulesFromExample() on a (few) example(s) to obtain the base set of rules (using them you end up with a datastructure that looks very similar or exactly the same as the one you get from XML::Simple).
- Tweak the ruleset to skip the tags you are not interested in or convert a list of <field name="...">...value...</field> style tags into a hash etc.
- If the data are still too big, change the rules for some tags to process the data at whatever level that's convenient. The subroutines you specify as the rules for those tags will receive all the data from that tag and children "simplified" according to the rules of the child tags.
It's "push" rather than "pull" as soon as you start using the subroutine rules, but it's pretty powerful once you get used to the style.
Jenda
Enoch was right!
Enjoy the last years of Rome.