Как отформатировать XML-файл, созданный из сетки данных в Windows Form C # - PullRequest
0 голосов
/ 10 мая 2018

У меня есть сетевое представление с данными, которые я хотел бы сохранить в виде файла XML. Я использую только формы для окон последние две недели, поэтому мой опыт ограничен. Мне удалось сохранить файл, но я хочу знать, как сохранить его в формате, как в моем примере ниже. Буду благодарен за любую помощь

//This is what im getting
<?xml version="1.0" standalone="yes"?>
<DocumentElement>
  <itemstable>
    <ProcessName>batchmnt.exe</ProcessName>
    <ProcessPID>DDD</ProcessPID>
    <ProcessFileName>mark</ProcessFileName>
    <Operation>WriteFile</Operation>
    <ProcessLength>3</ProcessLength>
    <ProcessPath>mark</ProcessPath>
    <ProcessKey>batchmnt.exe|DDD|mark|WriteFile</ProcessKey>
  </itemstable>
<DocumentElement>

//This is what im looking for
<Msg Date ="" Time="">
    <Layer Name="Core">
        <SourceLayer Name="PMC">
        <Message ProcessName=""
                 PID =""
                 FileName=""
                 Operation=""
                 Length=""
                 Path="">                
        </Message>
    </Layer>
</Msg>

//And this is my code    
private void SaveXML()
        {
            string filename = "";
            SaveFileDialog sfd = new SaveFileDialog
            {
                Filter = "XML (*.xml)|*.xml",
                FileName = ""
            };
            if (sfd.ShowDialog() == DialogResult.OK)
            {
                filename = sfd.FileName;
                Deleteifexists(filename);
                DataTable dt = new DataTable("itemstable");

                for (int i = 0; i < dataGridView1.ColumnCount; i++)
                {
                    dt.Columns.Add(dataGridView1.Columns[i].Name, typeof(System.String));
                }

                DataRow myrow;
                int icols = dataGridView1.Columns.Count;
                foreach (DataGridViewRow drow in this.dataGridView1.Rows)
                {
                    myrow = dt.NewRow();
                    for (int i = 0; i <= icols - 1; i++)
                    {

                        myrow[i] = drow.Cells[i].Value;
                    }
                    dt.Rows.Add(myrow);
                }

                dt.WriteXml(filename);
            }


        }

1 Ответ

0 голосов
/ 10 мая 2018

DataTable.WriteXML также дополнительно принимает XMLSchema.

Если вы перейдете к нижней части этой ссылки, вот пример использования схемы: https://msdn.microsoft.com/en-us/library/system.data.datatable.writexml(v=vs.110).aspx

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