Не совсем уверен, что ваши вопросы - вы спрашиваете, как этого добиться (загрузка XML), или где лучше всего его задать, или что?
Чтобы получить XML, используйте что-то вроде этого:
using System.Net;
WebClient client = new WebClient();
string result = client.DownloadString("http://www.amk.ca/quotations/sherlock-holmes.xml");
Вы получаете строку XML, которую теперь можете анализировать с помощью XmlDocument или XDocument (Linq-to-XML) - вы спрашиваете, как это сделать ??
Или, если вы знаете, какие сайты и какой формат XML вы используете заранее, вы также можете загрузить XML и сгенерировать из него схему XML, а на втором шаге создать классы C # из схемы XML, которая будет подходит для десериализации строки XML в перечисление, например, Quotation
классов (на основе тега <quotation>
в предоставленном примере XML).
Обновление: если у вас есть образец XML в виде файла, вы можете использовать утилиту командной строки xsd.exe
для генерации схемы XML из XML, и на основе этой схемы XML вы можете создать класс C #, который будет использоваться для десериализации. Дополнительные сведения см. В документах MSDN для xsd.exe .
По сути, вызов xsd.exe (yourfile.xml)
сгенерирует XML-схему yourfile.xsd
на основе вашего входного XML-файла, а запуск xsd.exe /c (yourfile.xsd)
сгенерирует класс C # из этой XML-схемы.
Используя это, вы можете десериализовать ваш XML в класс C # за один шаг, а затем «исследовать» содержимое XML, просто перемещаясь по классу C #, его свойствам и его спискам подэлементов.
Эта десериализация будет выглядеть примерно так:
XmlSerializer deserializer = new XmlSerializer(typeof(ThatDataTypeGenerated));
object result = deserializer.Deserialize(<either a file name, or a stream or something>);
Это работает до тех пор, пока вы не будете знать заранее, какой тип XML вы будете получать (чтобы вы могли заранее сгенерировать из него схему XML и класс C #).
Кроме того, вы можете сделать первый шаг (превратить файл данных XML в схему) тоже внутри Visual Studio (меню «XML» -> «Создать схему XML»), а также второй шаг (превратить схему XSD XML в класс C #), вы можете взглянуть на что-то вроде Xsd2Code .