Привет всем.
Я получаю ошибку asp.net «Корневой элемент отсутствует», когда я загружаю результаты запроса REST в XmlDocument. Тот же самый запрос REST выглядит нормально и возвращает действительные результаты, когда я выполняю его с помощью аддона Firefox «RESTTEST». Но ошибка проявляется в коде C # .net. Кто-нибудь знает, что может быть причиной этого? Вот соответствующий код:
HttpWebResponse response = null;
response = (HttpWebResponse)request.GetResponse();
HttpStatusCode statusCode = response.StatusCode;
Stream responseData = response.GetResponseStream();
StreamReader sr = new StreamReader(responseData);
XmlTextReader reader = new XmlTextReader(sr);
XmlDocument doc = new XmlDocument();
doc.Load(sr); // here is where the error occurs.
Моя цель состоит в том, чтобы загрузить результаты запроса REST в модель данных XML с возможностью перемещения, которую я затем могу получить из элементов и их значений.
Когда я использую этот код, я получаю ожидаемые результаты. В чем разница?
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element: // The node is an Element.
Response.Write("Element Name: " + reader.Name);
while (reader.MoveToNextAttribute()) // Read attributes.
Response.Write(" " + reader.Name + "='" + reader.Value + "'");
Response.Write("<br />");
break;
case XmlNodeType.Text: //Display the text in each element.
Response.Write("Element value: " + reader.Value);
Response.Write("Read key=" + reader.Name + ", value=" + reader.Value + "<br/>");
break;
case XmlNodeType.EndElement: //Display end of element.
Response.Write("<br />");
break;
}
}