2010-03-13 106 views
9

.NET中是否存在JAXB的等效庫?我正試圖將我得到的XML轉換爲.NET類。我有XSD,但不知道如何將接收到的XML轉換爲具體的類?我使用XSD tool從架構中生成一個類,但是我想將我在運行時收到的XML轉換爲可以在代碼中使用的對象。.NET JAXB等效?

我已經看到線程here處理這個,但我的查詢是 - 我想創建的對象包含我在XML中接收的數據(即字段值必須填充)。

回答

0

這是一種更好的方式,更接近我一直在尋找:

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

不是說你錯了,只是好奇爲什麼這個解決方案比Mike Two更好。 +1,一旦你迴應。 – JagWire 2013-09-16 18:05:58

+1

您的問題要求XML =>對象。你的回答是用另一種方式來做的:object => XML。 – ViToni 2015-02-04 11:21:12

10

您可以使用xsd.exe生成類,然後在您的代碼中使用XmlSerializer來填充類。例如,如果XSD.EXE創建一個名爲類Foo你可以寫:

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