No, its not easy because the dificulty is in the nature of the data. The record doesn't easily break down into simple columns: you seem to be able to have several variable number things. CSV files don't work well with variable numbers of data points per record.
To take your object and turn it into a csv you would first have to remove the header component of the document, then for each record figure out which feilds are variable, which record has the greatest number, and assemble your CSV that way. If you only need the header data then I reccomend something like XML::XPath to select the header nodes and extract their values, then assemble an AoA and dump that to your CSV.
Basically the data is too complex for a csv to handle easily, and you'll need to make some representation and implementation choices.