У меня есть XML-файл, подобный следующему:
<?xml version="1.0" encoding="UTF-8"?>
<Logging S="T006" version="2" >
<Log Date="2018-11-21" Severity="Error" id="22" ID="Opened" Msg="some text"/>
<Log Date="2018-11-21" Severity="Info" id="76" ID="Auth"/>
<Log Date="2018-11-21" Severity="Info" id="60" ID="Up"/>
<Log Date="2018-11-21" Severity="Warning" id="22" ID="Opened" Msg="some text"/>
<Log Date="2018-11-21" Severity="Info" id="96" ID="Locked"/>
<Log Date="2018-11-21" Severity="Info" id="84" ID="Done"/>
<Log Date="2018-11-21" Severity="Info" id="57" ID="Idle"/>
<Log Date="2018-11-21" Severity="Error" id="10" ID="Inspected" Pos="12"/>
<Log Date="2018-11-21" Severity="Info" id="148" ID="Started"/>
</Logging>
Для отображения данных из этого файла в datagridview.Я создаю столбцы таблицы, используя имена атрибутов xml: Date, Severity, id, ID.
DataTable dt = new DataTable();
dt.Columns.Add("Date", typeof(DateTime));
dt.Columns.Add("Severity", typeof(string));
dt.Columns.Add("id", typeof(string));
dt.Columns.Add("ID", typeof(string));
dt.Columns.Add("Msg", typeof(string));
XDocument docLog = XDocument.Load(XML_FILEPATH);
foreach (XElement log in docLog.Descendants("Log"))
{
DateTime date = (DateTime)log.Attribute("Date");
string severity = (string)log.Attribute("Severity");
string id = (string)log.Attribute("id");
string ID = (string)log.Attribute("ID");
string msg = (string)log.Attribute("Msg");
dt.Rows.Add(new object[] { date, severity, id, ID, msg });
}
Но отображаемые данные показывают строки столбца «id» и дублируют то же самое для столбца «ID».поэтому он пропускает / игнорирует реальные данные / значение атрибутов "ID".
![the output table](https://i.stack.imgur.com/IByII.png)
Как я могу предотвратить это дублирование и получить значенияАтрибуты «ID» и отображают их в виде строк под столбцом «ID»?
, пытаясь вывести результат в таблицу с помощью StreamReader:
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Filter = @"All files (*.*)|*.*";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
myLogfile = openFileDialog1.FileName;
StreamReader sr = new StreamReader(openFileDialog1.FileName);
var dataset = new DataSet();
dataset.ReadXml(sr);
var bindingSource = new BindingSource
{
DataSource = dataset,
DataMember = "Log"
};
dataGridView1.DataSource = bindingSource;
, но это также дублирует значения «id»"в" ID "!!