Laden...

Zwei Objekten zu einer XML

Erstellt von HerrOli vor 11 Jahren Letzter Beitrag vor 11 Jahren 1.886 Views
H
HerrOli Themenstarter:in
16 Beiträge seit 2011
vor 11 Jahren
Zwei Objekten zu einer XML

Hallo
ich versuch gerade mich in XML einzuarbeiten und habe folgendes Programm:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Converters;
using System.Xml;
using System.Xml.Serialization;

namespace test2
{
    class Program
    {
        static void Main(string[] args)
        {
           JObject o = JObject.Parse(@"{
                                          ""Stores"": [
                                            ""Lambton Quay"",
                                            ""Willis Street""
                                          ],
                                          ""Manufacturers"": [
                                            {
                                              ""Name"": ""Acme Co"",
                                              ""Products"": [
                                                {
                                                  ""Name"": ""Anvil"",
                                                  ""Price"": 50
                                                }
                                              ]
                                            },
                                            {
                                              ""Name"": ""Contoso"",
                                              ""Products"": [
                                                {
                                                  ""Name"": ""Elbow Grease"",
                                                  ""Price"": 99.95
                                                },
                                                {
                                                  ""Name"": ""Headlight Fluid"",
                                                  ""Price"": 4
                                                }
                                              ]
                                            }
                                          ]
                                        }");
           


            IList<string> storeNames = o.SelectToken("Stores").Select(s => (string)s).ToList();
            
            IList<string> firstProductNames = o["Manufacturers"].Select(m => (string)m.SelectToken("Products[0].Name")).ToList();

            XmlDocument doc = new XmlDocument();
            // ???

            Console.ReadLine();
        }
    }
}

nun meine Frage: Wie kann ich "storeNames" und "firstProductNames"
zu einer XML Datei machen?

3.430 Beiträge seit 2007
vor 11 Jahren

Hallo HerrOli,

guck dir mal den XMLSerializer an.
Damit kannst du Daten in ein XML File serialisieren.
Guck mal hier: XML Serializer

Gruß
Michael

6.876 Beiträge seit 2009
vor 11 Jahren

Hallo HerrOli,

wenn du Linq2Xml verwendest können alle Linq-Operationen wie Join, Union(All), etc. angewandt werden. Siehe LINQ to XML - 5 Minute Overview

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

H
HerrOli Themenstarter:in
16 Beiträge seit 2011
vor 11 Jahren

Danke erst mal an euch beiden

@michlG
Warum bekomme ich bei dem Beispiel die Fehlermeldung:> Fehlermeldung:

Auf 'test3.Program' kann aufgrund der Sicherheitsebene nicht zugegriffen werden. Nur öffentliche Typen können verarbeitet werden.

in der Zeile: serializer = new XmlSerializer(typeof(Person)); ?
(Verwende MS VS2008 Express Edition)

@gfoidl
Danke für den Link
werde ich mir morgen in Ruhe mal anschauen

3.430 Beiträge seit 2007
vor 11 Jahren

Hallo,

entweder du hast die Person-Klasse gar nicht erstellt, oder sie ist nicht zugänglich.
Im typeof gibst du an welchen Typ Objekt du serialisieren willst.

Siehe: [Hinweis] Syntaxfehler selbst lösen (Compilerfehlermeldungen)

Gruß
Michael

S
247 Beiträge seit 2008
vor 11 Jahren

Hallo HerrOli,

die Klasse "Person" muss public sein.

spooky