This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
You could either get the parent Node's name then add InputRecord and OutputRecord specific logic based on this value ...
or instead of going straight for Field you could retrieve InputRecord and OutputRecord separately then declare a new NodeList for Field. Naturally if you choose this option I would make this a function with the parent name as an argument (i.e. InputRecord).
Option 1 seems cleaner based on your example but I suppose depending on the size of the XML, number of parents (i.e. InputRecord) and the number of children each parent has it may make more sense to go directly to the parent.