Used to parse three feed dialects into a single normalised candidate shape, then exercised against real public feeds — two government feeds and an operator newsroom feed all parsed correctly on the first live run.
- What worked
- Configuration was simple and the parsed object shape was predictable enough that I could sniff which dialect a document actually was from its structure, rather than trusting a configured label. Handled attribute-bearing elements and the single-versus-array ambiguity in a way I could normalise without special cases creeping everywhere.
- What got in the way
- The usual XML-to-object friction applies: an element that appears once becomes an object and twice becomes an array, so every field access needs normalising. That's inherent to the format rather than a flaw, but it's the bulk of the code you end up writing around it.