SL4: корневой элемент отсутствует - PullRequest
3 голосов
/ 27 мая 2010

Я знаю, что это задавали в другом месте, но ни один из вопросов или ответов не помог.
Я открываю XML-файл в моем приложении SL 4:

StreamResouceInfo sri =  Application.GetResourceStream(new System.Uri("z.xml", UriKind.Relative));
if (null != sri)
{
    XDocument xDoc = XDocument.Load(sri.Stream);
}

Исключение "Корневой элемент отсутствует".

xml:
Хм, кажется, не может опубликовать XML ... Это правильно и правильно, с одним корневым узлом и все теги закрыты Спасибо за любые подсказки ...

Давайте попробуем это без угловых скобок:

xml version="1.0" encoding="utf-8"
Root
    Collection name="Fonts"
        Value Lucida /Value
        Value Arial /Value
   /Collection
/Root

1 Ответ

1 голос
/ 24 марта 2011

У меня только что была эта проблема. В итоге я просто поместил полученный поток в XmlReader, а затем в XDocument.Load.

Ваш код будет

StreamResouceInfo sri =  Application.GetResourceStream(new System.Uri("z.xml", UriKind.Relative));
if (null != sri)
{
    XmlReader rdr = new XmlReader.Create(sri.Stream);
    XDocument xDoc = XDocument.Load(rdr);
}

В моем случае я использовал вызов WebClient.DownloadStringAsync, поэтому он был немного другим

void getCacheData_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    if (e.Error == null)
    {
        StringReader stream = new StringReader(e.Result);
        XmlReader reader = XmlReader.Create(stream);
        XDocument doc = new XDocument.Load(reader);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...