Чтение Xml в сетку данных в C # - PullRequest
1 голос
/ 02 марта 2009

Каков наилучший способ чтения Xml из XmlDocument или String в DataGrid?

Должен ли xml быть в определенном формате?

Должен ли я использовать набор данных в качестве посредника?

Я работаю над клиентом, который использует Xml, отправленный с Сервера, который разрабатывает один из моих коллег, я могу заставить его изменить формат Xml в соответствии с требованиями DataGrid.

Ответы [ 4 ]

2 голосов
/ 02 марта 2009

Очевидно, ваш XML должен быть действительным:)

После этого определите набор данных, определите сетку данных. Используйте метод readXML в наборе данных, чтобы заполнить набор данных вашим XML, закончите с dataBind, и все готово.

DataSet myDataSet = new DataSet();
myDataSet .ReadXml(myXMLString);
myDataGrid.DataSource = myDataSet ; 
myDataGrid.DataBind(); 
2 голосов
/ 02 марта 2009

Это зависит от того, на какой версии .NET вы работаете. Если вы можете использовать Linq2Xml, то это легко. Просто создайте XDocument и выберите дочерние узлы в виде списка анонимного типа.

Если вы не можете использовать Linq2Xml, у вас есть несколько других вариантов. Использование DataSet - одно, это может хорошо работать, но это зависит от xml, который вы получаете. Другой вариант - создать класс, описывающий сущность, которую вы будете читать из xml, и вручную проходить через узлы xml. Третий вариант - использовать сериализацию Xml и десериализовать XML в список объектов. Это может работать хорошо, если у вас есть классы, которые настроены для этого.

Самым простым вариантом будет либо создать XDocument, либо создать DataSet, как вы предлагаете.

0 голосов
/ 02 марта 2009

У нас есть частичный ответ, чтобы получить данные в набор данных, но он считывает их как набор таблиц с реляционными ссылками.

        DataSet ds = new DataSet();
        XmlTextReader xmlreader = new XmlTextReader(xmlSource, XmlNodeType.Document, null);
        ds.ReadXml(xmlreader);
0 голосов
/ 02 марта 2009

Вы можете просто использовать объект XmlDatasource в качестве источника данных сетки. Это позволяет вам установить файл и XPath, чтобы выбрать XML, который является источником ваших данных. Затем вы можете использовать функцию <% # XPath = "blah"%> для явной записи ваших данных, если хотите.

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