【发布时间】:2011-01-27 02:26:24
【问题描述】:
.NET 中是否有与 JAXB 等效的库?我正在尝试将我得到的 XML 转换为 .NET 类。我有 XSD,但不确定如何将收到的 XML 转换为具体的类?我使用XSD tool 从模式生成一个类,但我想将我即时收到的 XML 转换为我可以在代码中使用的对象。
我已经看到处理此问题的线程 here,但我的查询是 - 我希望创建的对象包含我在 XML 中收到的数据(即必须填充字段值)。
【问题讨论】:
.NET 中是否有与 JAXB 等效的库?我正在尝试将我得到的 XML 转换为 .NET 类。我有 XSD,但不确定如何将收到的 XML 转换为具体的类?我使用XSD tool 从模式生成一个类,但我想将我即时收到的 XML 转换为我可以在代码中使用的对象。
我已经看到处理此问题的线程 here,但我的查询是 - 我希望创建的对象包含我在 XML 中收到的数据(即必须填充字段值)。
【问题讨论】:
您可以使用 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);
}
【讨论】:
这是一种更好的方法,更接近我的目标:
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;
}
【讨论】: