Skip to content

Instantly share code, notes, and snippets.

@owlscatcher
Last active July 7, 2020 05:25
Show Gist options
  • Save owlscatcher/a7b82724aa5f097e6486dc21f7846a09 to your computer and use it in GitHub Desktop.
Save owlscatcher/a7b82724aa5f097e6486dc21f7846a09 to your computer and use it in GitHub Desktop.
Простой парсин XML с использованием DataSet
<?xml version="1.0" standalone="yes"?>
<servers>
<server value="server-1">
<device address="1" mode="1" active="true"/>
<device address="2" mode="3" active="true"/>
<device address="3" mode="1" active="true"/>
<device address="4" mode="3" active="true"/>
</server>
<server value="server-2">
<device address="1" mode="1" active="true"/>
<device address="2" mode="3" active="true"/>
<device address="3" mode="1" active="true"/>
<device address="4" mode="3" active="true"/>
</server>
<server value="server-3">
<device address="1" mode="1" active="true"/>
<device address="2" mode="2" active="true"/>
<device address="3" mode="1" active="true"/>
<device address="4" mode="2" active="true"/>
<device address="5" mode="1" active="true"/>
<device address="6" mode="2" active="true"/>
<device address="7" mode="1" active="true"/>
<device address="8" mode="2" active="true"/>
<device address="9" mode="1" active="true"/>
<device address="10" mode="1" active="true"/>
<device address="11" mode="1" active="true"/>
<device address="12" mode="1" active="true"/>
<device address="13" mode="1" active="true"/>
<device address="14" mode="1" active="true"/>
<device address="15" mode="1" active="true"/>
<device address="16" mode="1" active="true"/>
</server>
</servers>
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
namespace CONSOLE_TEST_SOLUTION
{
class Program
{
static void Main(string[] args)
{
DataSet dataSet = new DataSet();
string filePath = ("" + Directory.GetCurrentDirectory() + "\\server-list.xml");
List<DataRow> serverList1 = new List<DataRow>();
List<DataRow> serverList2 = new List<DataRow>();
List<DataRow> serverList3 = new List<DataRow>();
if(!File.Exists(filePath))
{
Console.WriteLine("Файл отсутствует");
}
else
{
Console.WriteLine("Файл server-list.xml найден");
dataSet.ReadXml(filePath);
Console.WriteLine("DataSet заполнен.");
foreach(DataRow row in dataSet.Tables["device"].Rows)
{
switch(row[3])
{
case 0:
serverList1.Add(row);
break;
case 1:
serverList2.Add(row);
break;
case 2:
serverList3.Add(row);
break;
}
}
Console.WriteLine("\n\nServer list 1 \nAddr Mode Active Server");
foreach (DataRow row in serverList1)
for (var i = 0; i < dataSet.Tables["device"].Columns.Count; i++)
if(i != 3)
Console.Write(row[i] + " ");
else
Console.WriteLine(((int)row[i]) + 1 + " ");
Console.WriteLine("\n\nServer list 2 \nAddr Mode Active Server");
foreach (DataRow row in serverList2)
for (var i = 0; i < dataSet.Tables["device"].Columns.Count; i++)
if (i != 3)
Console.Write(row[i] + " ");
else
Console.WriteLine(((int)row[i]) + 1 + " ");
Console.WriteLine("\n\nServer list 3 \nAddr Mode Active Server");
foreach (DataRow row in serverList3)
for (var i = 0; i < dataSet.Tables["device"].Columns.Count; i++)
if (i != 3)
Console.Write(row[i] + " ");
else
Console.WriteLine(((int)row[i]) + 1 + " ");
}
Console.ReadKey();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment