Member 12980875 Ответов: 2

Чтение XML с помощью ASP.NET


<?xml version="1.0" ?>
<DatabaseSubMenuReportExecution>
<Columns>
<C0>RoleName</C0>
<C1>Grantee</C1>
<C2>Grantor</C2>
<C3>WhenGranted</C3>
</Columns>
<Rows>
<R0>ceuser</R0>
<R1>coe4</R1>
<R2>DBC</R2>
<R3>2016-07-19 09:24:22.0</R3>
</Rows>
<Rows>
<R0>migration</R0>
<R1>coe4</R1>
<R2>DBC</R2>
<R3>2016-07-19 09:23:56.0</R3>
</Rows>
</DatabaseSubMenuReportExecution>

For the above XML the required output should be like below table.

How to achieve this?

RoleName--------Grantee---------Grantor----------WhenGranted
Ceuser----------Coe4------------DBC--------------2016-07-19 09:24:22.0
Migration-------Coe4------------DBC--------------2016-07-19 09:24:22.0


Что я уже пробовал:

Для приведенного выше XML-файла требуемый вывод должен быть похож на приведенную ниже таблицу.

Как этого добиться?


Имя_роли--------Грантополучатель---------Лица, Предоставившего Право----------WhenGranted
Ceuser----------Coe4------------DBC--------------2016-07-19 09:24:22.0
Миграция - - - - - - - Coe4------------DBC--------------2016-07-19 09:24:22.0

ZurdoDev

У вас есть вопрос?

[no name]

Итак, вы хотите прочитать XML или привязать его здесь к элементу управления представлением сетки?

[no name]

"Как этого добиться?", ну, возможно, вам придется написать какой-то код.

2 Ответов

Рейтинг:
15

Maciej Los

Взгляните на пример:

//open xml
XDocument xdoc = XDocument.Load("FullXmlFileNameWithPathAndExtension");

//create new datatable
DataTable dt = new DataTable();

//get columns from "Columns" node
DataColumn[] cols = xdoc.Root.Element("Columns").Descendants()
	.Select(a => new DataColumn(a.Value, Type.GetType("System.String"))).ToArray();
//add columns to the datatable
dt.Columns.AddRange(cols);

//get rows from "Rows" nodes
var rows = xdoc.Root.Descendants("Rows")
	.Select((a, i)=> new {Index = i, Values = a.Descendants().Select(b=> b.Value).ToArray()});
//add rows to the datatable
foreach (var r in rows)
{
	dt.Rows.Add(r.Values);
}
//datatable is ready to use


Результат:
RoleName    Grantee    Grantor    WhenGranted
ceuser      coe4       DBC        2016-07-19 09:24:22.0 
migration   coe4       DBC        2016-07-19 09:23:56.0 


Примечание: приведенный выше пример не заботится о типе данных. Все данные обрабатываются как текст (строка).


Рейтинг:
0

ashok agarwal

Документ XmlDocument объект = новый объект XmlDocument();

// string xmlString = ""; / / если вы передаете XML как строку
// document. LoadXml(xmlString); / / загрузить XML-строку

документ.Нагрузка (@"C:....\test.xml"); / / загрузить XML-файл

Узлы XmlNodeList = документ.SelectNodes ("/root / string");

foreach (элемент XmlNode в узлах)
{
строка res = item.Через свойство innerText;
}

& lt;?xml version=" 1.0 "encoding=" utf-8"? >
& lt;root>

< string> ABC

< string> CYZ