我正致力于让我的.NET对象序列化/反序列化。作为我们XML文件的要求,对象必须位于名为mycompany
的主节点内。这里是一个文件的例子:来自内部XML节点的XML反序列化
<?xml version="1.0" encoding="utf-8"?>
<mycompany>
<station>
<serial>VAA008090067</serial>
</station>
</mycompany>
我遇到了一个问题得到这反序列化。我不知道如何告诉序列化程序,“嘿,请确保在反序列化之前挖掘到mycompany
节点。”
这里是我当前deserializtion代码(不占根节点):
Stream binaryStream = File.Open(Filename, FileMode.Open);
XmlSerializer xformatter = xformatter = new XmlSerializer(typeof(T));
obj = (T)xformatter->Deserialize(stream);
我试图做下面的代码:创建一个XmlTextStream
,在文件头节点读取,mycompany
节点,那么流传递到串行
Stream binaryStream = File.Open(Filename, FileMode.Open);
xmlReader = gcnew XmlTextReader(binaryStream);
xmlReader.Read(); // add error checking
xmlReader.Read(); // add error checking
xformatter = gcnew XmlSerializer(T.typeid);
obj = (T)xformatter.Deserialize(xmlReader);
以上不工作,我抛出一个XmlElement error: Root element is missing
。
我知道有一个简单的解决方案,但我无法找到它。
说实话我不知道关于整个问题,但你的解析成XML第一可能是你的根元素缺少 – espais 2010-08-11 15:19:53