Crappy XPath implementation: http://stackoverflow.com/questions/3782618/xpath-evaluate-performance-slows-down-absurdly-over-multiple-calls
Replaced with Saxon.  Now processing at over 2000 records per second on 8 core MBP.