I'm not sure what the problem is... however I have an XML construct that looks like the following. The trick is that I have my "base" node (in your case this would be manufacturer. I think that selection criteria is what you're missing. I may not be doing it right.. but hopefully it helps.
you can find the id of the node as follows when using the loop "for each node "/player/base"
node_id = XML_PLAYER.StringValue("id")
and then you can select based on that
name = XML_PLAYER.StringValue("/player/base[@id=" & node_id /name/text()")