.NET中是否有JAXB的等效库?我正在尝试将XML转换为.NET类。我有XSD,但不知道如何将收到的XML转换为具体的类?我使用XSD tool从模式生成一个类,但我想将我即时收到的XML转换为我可以在代码中使用的对象。
我已经看到了处理此问题的线程here,但我的查询是 - 我希望创建的对象包含我在XML中收到的数据(即必须填充字段值)。
答案 0 :(得分: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);
}
答案 1 :(得分: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;
}