I have created an XML Class
and a SQL Entity Class
.
I need to map the XML to my SQL however I have stumbled into a problem with Arrays which I cannot figure out how to solve.
First Code
using (var fileStream = File.Open(@"D:\ArbejdeSEGES\bigdutchman\BigDutchmanXMLReader\BigDutchmanXMLReader\XML\xml-export-01-04-2019 07.00.11.xml", FileMode.Open))
{
XmlSerializer serializer = new XmlSerializer(typeof(export));
var document = (export)serializer.Deserialize(fileStream);
var ventilTable = new Ventil();
ventilTable.FarmId = document.farmer.farmid.ToString();
foreach (var doc in document.device)
{
systemTable.Device = doc.name;
foreach (var dialGrp in doc.dialoggroup)
{
if (dialGrp.id == 1)
{
ventilTable.Col1 = ????
ventilTable.Col2 = ?????
XML
<export>
<farmer>
<farmid>42604</farmid>
</farmer>
<device name="FARE-LØBE" online="true">
<dialoggroup id="1" name="Ventil">
<field id="1" name="Ventil nr">
<value index="0">DISP</value>
<value index="1"></value>
<value index="2"></value>
<value index="3"></value>
<value index="4"></value>
<value index="5"></value>
<value index="6"></value>
<value index="7"></value>
<value index="8"></value>
<value index="9"></value>
<value index="10"></value>
</field>
<field id="2" name="1. Mix nr.">
<value index="0">1</value>
<value index="1">1</value>
<value index="2">1</value>
<value index="3">1</value>
<value index="4">1</value>
<value index="5">1</value>
<value index="6">1</value>
<value index="7">1</value>
<value index="8">1</value>
<value index="9">1</value>
<value index="10">1</value>
</field>
As you can see im pretty stuck now. Im not sure how to assign all values at once? Should i make a List first? A DataSet?
Dialoggroup = Table
Field = Columns
value = row values
Hope I got everything else please ask:)
Use following for serialization:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
namespace ConsoleApplication1
{
class Program
{
const string FILENAME = @"c:\temp\test.xml";
static void Main(string[] args)
{
XmlReader reader = XmlReader.Create(FILENAME);
XmlSerializer serializer = new XmlSerializer(typeof(Export));
Export export = (Export)serializer.Deserialize(reader);
}
}
[XmlRoot("export")]
public class Export
{
[XmlElement("farmer")]
public Farmer farmer { get; set; }
public Device device { get; set; }
}
public class Farmer
{
public int farmid { get; set; }
}
public class Device
{
[XmlAttribute()]
public Boolean online { get; set; }
[XmlAttribute()]
public string name { get; set; }
[XmlElement("dialoggroup")]
public Dialoggroup dialoggroup { get; set; }
}
public class Dialoggroup
{
[XmlAttribute()]
public int id { get; set; }
[XmlAttribute()]
public string name { get; set; }
[XmlElement("field")]
public List<Field> fields { get; set; }
}
public class Field
{
[XmlAttribute()]
public int id { get; set; }
[XmlAttribute()]
public string name { get; set; }
[XmlElement()]
public List<Value> value { get; set; }
}
public class Value
{
[XmlAttribute()]
public int index { get; set; }
[XmlText]
public string value { get; set; }
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.