2010-03-13 27 views
9

Czy istnieje odpowiednik biblioteki dla JAXB w .NET? Próbuję przekonwertować XML dostać się do klasy .NET. Mam XSD, ale nie wiem, jak przekonwertować otrzymany XML do konkretnej klasy? Użyłem XSD tool do wygenerowania klasy ze schematu, ale to, co chcę przekonwertować XML, który otrzymuję w locie, na obiekt, z którym mogę pracować w kodzie..NET JAXB odpowiednik?

Widziałem wątek here, który zajmuje się tym, ale moje zapytanie jest - Chcę, aby utworzony obiekt zawierał dane, które otrzymuję w XML (tj. Pola muszą być wypełnione).

Odpowiedz

0

Jest to znacznie lepszy sposób bardziej bliżej co szukałem:

static public string serializeObject(ProductPriceLines objecteToSerialize) 
    { 
     System.Xml.Serialization.XmlSerializer mySerializer = new System.Xml.Serialization.XmlSerializer(typeof(ProductPriceLines)); 

     System.IO.MemoryStream t = new System.IO.MemoryStream(); 
     mySerializer.Serialize(t, objecteToSerialize); 


     UTF8Encoding utf = new UTF8Encoding(); 
     string strbytes = utf.GetString(t.ToArray()); 


     return strbytes; 
    } 
+1

Nie mówiąc mylisz , tylko ciekawy, dlaczego to rozwiązanie jest lepsze niż Mike Two. +1 po udzieleniu odpowiedzi. – JagWire

+1

Pytanie prosi o obiekt XML =>. Twoja odpowiedź robi to odwrotnie: object => XML. – ViToni

10

Możesz użyć xsd.exe, aby wygenerować klasę, a następnie użyć kodu XmlSerializer do wypełnienia klasy. Na przykład jeśli xsd.exe tworzy klasę o nazwie Foo można napisać:

Foo someFoo; 
using (var stream = new FileStream("foo.xml", FileMode.Open)) 
{ 
    var serializer = new XmlSerializer(typeof(Foo)); 
    someFoo = serializer.Deserialize(stream); 
} 
Powiązane problemy