Yup - you can always put files in a zip and attach that as well.
So - put a rule on Company - no condition - to set a field's value. The field you are going to set is the main data source field for the contact person.
The XPath to get the right contact name should be:
xdXDocument:GetDOM("Contacts")/CONTACTS/COMPANY/CONTACTPERSON[../@NAME =current()]
You could also do this with the UI in IP - select the CONTACTPERSON field in the secondary data source, and then add a Filter (using the Filter button). The first dropdown for the filter would be the @NAME attribute on COMPANY. The middle would be is equal to and the last one, you'd select a field or group, go to the main data source, and select the main data source field bound to the drop down.