С javascript, как правило, вы полагаетесь на браузер для анализа XML для вас. Если браузер не может разобрать его из-за его неправильной работы, вам придется решать его вручную. Кажется, есть библиотека для этого на http://xmljs.sourceforge.net/. Я не использовал это сам, но это кажется твердым. Опять же, это может также привести к ошибкам в xml.
Что является причиной неправильной формы xml? Может быть, вы можете что-то сделать для этого?
И, наконец, если вы просто пытаетесь получить доступ к какой-то части данных документа, вы можете использовать регулярное выражение:
doc = "<one><two>three</two></one>";
captures = doc.match(/<two>(.*)<\/two>/); // returns ["<two>three</two>", "three"]
data = captures[1]; // "three"