Update - I've gotten around this problem by using a home-made xml parser (written in Lua). It makes a table of tables which can then be modified and re-serialized for writing to disk. Presently there are no "convenience" methods to help accessing of the parts, but ordinary lua table methods work once you figure out whats what. I'm particularly fond of this little parser because its fast, simple, supports re-writing modified xml (LrXml does not), and supports element's namespace names (LrXml does not). Its non-validating (nor is LrXml), and does not support xslt (unlike LrXml which does). Let me know if you have a use for it.
Code originally obtained from http://lua-users.org/wiki/LuaXml