Я предполагаю, что вы говорите, что LoadXml вызывает исключение при попытке обработать результаты DownloadString.
У меня была эта проблема раньше, и по какой-то причине мне еще предстоит определить, что в начале строки, кажется, есть два символа, которые портят XML-документ. Одно из решений - просто снять два символа. Я предполагаю, что они как-то связаны с метками порядка байтов документа UTF.
Другой вариант - использовать альтернативный синтаксис на основе потока:
xbk.Load(xkl.OpenRead("..."));
Или вы можете просто использовать класс HttpWebRequest.
Также см. Этот вопрос: Разметка порядка следования байтов из строки в C #