Parsing a large XML file with xq

Here is how I used xq to parse a 34MB, 773,623 line XML file - retrieving only the fields I needed from a filtered list of items:

xq -x '.StationList.Station[]
| select(.StationCode | IN ("ABE", "CDF"))
| {StationCode, StationAlerts}' stations.xml

Adding -x returns the text as XML instead of JSON.

It runs in only a few seconds and returns exactly what I need.