I have a directory full (~103, 104) of XML files from which I need to extract the contents of several fields. 
I've tested different xml parsers, and since I don't need to validate the contents (expensive) I was thinking of simply using xml.parsers.expat (the fastest one) to go through the files, one by one to extract the data. 

Is there a more efficient way? (simple text matching doesn't work)
Do I need to issue a new ParserCreate() for each new file (or string) or can I reuse the same one for every file?
Any caveats?

Thanks!
One thing you didn't indicate is whether or not you're reading the XML into a DOM of some kind.  I'm guessing that you're probably not, but on the off chance you are, don't.  Use xml.sax instead.  Using SAX instead of DOM will get you a significant performance boost.
What is the most efficient way of extracting information from a large number of xml files in python?