Конвертировать строку в datatable с помощью c # - PullRequest
0 голосов
/ 25 апреля 2019

Я хочу знать, как преобразовать эту строку в datatable.Эта строка является моей строкой:

"<data name=\"Footer\" xml:space=\"preserve\"> <value>Digital Number</value> </data>,<data name=\"lblDisplay\" xml:space=\"preserve\"> <value>Hien thi</value> </data>"

Я создал таблицу с 2 столбцами с именами «Имя» и «Значение»:

DataTable tbl = new DataTable();
DataColumn column;
DataRow row;
column = new DataColumn();
column.DataType = System.Type.GetType("System.String");
column.ColumnName = "Name";
tbl.Columns.Add(column);

column = new DataColumn();
column.DataType = System.Type.GetType("System.String");
column.ColumnName = "Value";
tbl.Columns.Add(column);

Как я могу преобразовать строку в DataTable?

1 Ответ

3 голосов
/ 25 апреля 2019

Строка, которую вы разместили, очень похожа на xml, но она не является действительной xml Ему нужен корневой элемент (и удалите запятую ,). Я обновил ниже:

var xmlString = @"<?xml version=""1.0""?>
                  <rootData>
                      <data name=""Footer"" xml:space=""preserve""> 
                          <value>Digital Number</value> 
                      </data>
                      <data name=""lblDisplay"" xml:space=""preserve"">
                          <value>Hien thi</value> 
                      </data>
                  </rootData>";

DataSet имеет метод ReadXml(), который

... позволяет читать только данные или оба данные и схема в DataSet из XML-документа ...

Зная это, теперь вы можете создать DataSet и использовать StringReader для чтения Xml прямо в DataSet.

var ds = new DataSet();
using (var reader = new StringReader(xmlString))
{
    ds.ReadXml(reader);
}

Затем все, что вам нужно сделать, это извлечь данные из набора данных:

Console.WriteLine($"{ds.Tables[0].Rows[0]["name"]}: {ds.Tables[0].Rows[0]["value"]}");

// output
Footer: Digital Number

Если вы хотите DataTable, просто сделайте:

 DataTable dt = ds.Tables[0];

Смотрите это скрипка .

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