Чтение xml с веб-страницы aspx - PullRequest
3 голосов
/ 18 сентября 2009

Мы должны прочитать данные со страницы aspx. Когда мы вызываем страницу со строкой запроса, она возвращает документ XML с данными, которые соответствуют строке запроса.

У нас есть XSD, который соответствует xml, который мы получаем.

Я думаю, что мы можем прочитать документ xml из ответа http. Будет ли это работать?

Как мы можем связать XML с XSD, чтобы мы могли обрабатывать XML-документ, как если бы он был строго типизирован?

Спасибо

Шираз

Обновление:

Нашел эту ссылку о том, как десериализовать

Десериализация XML в объекты в C #

1 Ответ

3 голосов
/ 18 сентября 2009

Ну, в принципе, вы можете запросить XML-документ примерно так (не пытайтесь / поймайте здесь - но вы обязательно должны это добавить!):

HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);
myRequest.Method = "POST";  // or GET - depends 

myRequest.ContentType = "text/xml; encoding=utf-8";
myRequest.ContentLength = data.Length;

using (Stream reqStream = myRequest.GetRequestStream())
{
  // Send the data.
  reqStream.Write(data, 0, data.Length);
  reqStream.Close();
}

// Get Response
WebResponse myResponse;

myResponse = myRequest.GetResponse();
XmlDocument _xmlDoc = new XmlDocument();

using (Stream responseStream = myResponse.GetResponseStream())
{
   _xmlDoc.Load(responseStream);
}   

Независимо от того, есть ли у вас GET или POST, зависит от вашего сценария - в GET у вас не будет данных запроса.

Как только вы вернете свой XML в качестве XmlDocument, вы можете либо проверить его по схеме XML, либо просто попытаться десериализовать его в тип, представленный имеющейся у вас схемой XSD.

Если это работает -> полученный вами XML действителен и в порядке. Если нет, вы получите исключение при десериализации.

Марк

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...