All of that business about where the data comes from and how you get it is irrelevant to what parser
you should use. What
is relevant, however, is the part of your post about XPath expressions. If you plan to use XPath expressions then you should use a parser which supports XPath. As far as I know streaming parsers don't.
As for the expression, I'm amazed that somebody should decide to use identifiers which look sort of like HTTP URL's but use backslashes instead of slashes. What's up with that? Anyway your problem is simply that you're creating a
Java string which attempts to include backslash characters but doesn't escape them properly. Nothing to do with XML at all. You need this: