Laden...

Wie XML einfacher/direkter zu Objekt parsen?

Erstellt von rollerueckwaerts vor 12 Jahren Letzter Beitrag vor 12 Jahren 505 Views
R
rollerueckwaerts Themenstarter:in
57 Beiträge seit 2010
vor 12 Jahren
Wie XML einfacher/direkter zu Objekt parsen?

Hi,
bin noch sehr neu mit C# und kann ein wenig Hilfe gebrauchen.

Ich lese eine XML in diesem Format ein:


<row>
<Department>bla</Department>
<Project>bla</Project>
<Business-critical></Business-critical>
<Priority></Priority>
<Status>In Progress</Status>
<Planned_Completion_Date>bla</Planned_Completion_Date>
<Project_Dependencies></Project_Dependencies>
<Business_PM></Business_PM>
<Business_Owner></Business_Owner>
<Application_Area></Application_Area>
<IT_Business_Unit>bla</IT_Business_Unit>
<IT_PM>bla</IT_PM>
<IT_Manager></IT_Manager>
<Current_Activity></Current_Activity>
<Objective>Comission accounting </Objective>
<Remarks></Remarks>
</row>
<row>
<Department>bla</Department>
<Project>bla</Project>
<Business-critical></Business-critical>
<Priority></Priority>
<Status>In Progress</Status>
<Planned_Completion_Date>bla</Planned_Completion_Date>
<Project_Dependencies></Project_Dependencies>
<Business_PM></Business_PM>
<Business_Owner></Business_Owner>
<Application_Area></Application_Area>
<IT_Business_Unit>IT</IT_Business_Unit>
<IT_PM>bla</IT_PM>
<IT_Manager></IT_Manager>
<Current_Activity></Current_Activity>
<Objective></Objective>
<Remarks></Remarks>
</row>

Jedes <row> entspricht genau einem "Project" Objekt was ich später in einem Array speichern möchte.


public class Project
        {
          
            public string Department { get; set; }
            public string Projectname { get; set; }
            public string BuisnessCritical { get; set; }
            public string Priority { get; set; }
            public string Status { get; set; }
....

Nun versuche ich die XML hiermit zu parsen:

while (reader.Read())
                    {
                        switch (reader.NodeType)
                        {
                            case XmlNodeType.Element:
                                writer.WriteStartElement(reader.Name);
                                break;


                            case XmlNodeType.Text:
                                writer.WriteString(reader.Value);
                                break;
                            case XmlNodeType.XmlDeclaration:
                            case XmlNodeType.ProcessingInstruction:
                                writer.WriteProcessingInstruction(reader.Name, reader.Value);
                                break;
                            case XmlNodeType.Comment:
                                writer.WriteComment(reader.Value);
                                break;
                            case XmlNodeType.EndElement:
                                writer.WriteFullEndElement();
                                break;
                        }
                    }

Irgendwie erscheint mir die Vorgehensweise zu kompliziert. Aus dem Smartphone Bereich kenne ich XMLParser die mir sofort nen Array mit meinen Objekten ausspuckt sobald die Anzahl der Werte zwischen XML und Objektdefinition übereinstimmen. Gibts sowas auch für Silverlight ?

Wie krieg ich die Werte der XML Date am einfachsten in meinen Array mit ProjectObjekte ?

Vielen Dank schon jetzt 😃

1.552 Beiträge seit 2010
vor 12 Jahren

Hallo rollerueckwaerts,

man kann XML deserializen zu C# Objects. Wie man dies für Eigenschaften macht welche in XML nicht dem Namen der Eigenschaft entspricht siehtst du Serialize and Deserialize Objects as XML

Gruß
Michael

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp