C# XML反序列化和值分配问题
我似乎无法理解以下内容,我已经尽量利用这里的可用主题 我有以下文件C# XML反序列化和值分配问题,c#,xml-serialization,C#,Xml Serialization,我似乎无法理解以下内容,我已经尽量利用这里的可用主题 我有以下文件 <?xml version="1.0"?> <Root> <Data> <Package> <GWT_></GWT_> <ALT_></ALT_> <SAT__></SAT__> </Package> <Package>
<?xml version="1.0"?>
<Root>
<Data>
<Package>
<GWT_></GWT_>
<ALT_></ALT_>
<SAT__></SAT__>
</Package>
<Package>
<GWT_></GWT_>
<ALT_></ALT_>
<SAT__></SAT__>
</Package>
</Data>
</Root>
以及功能:
private void dataReportToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenFileDialog openData = new OpenFileDialog();
openData.Filter = "Eta file|Data_*.dat
if (DialogResult.OK == openData.ShowDialog())
{
Package package = null;
string path = openData.FileName;
XmlSeriallizerSerializer(typeof(Root));
StreamReader reader = new StreamReader(path);
package = (Root)serializer.Deserialize(reader);
reader.Close();
}
}
首先,我得到一个错误,它不能隐式地将“Root”转换为“Package”
我需要一种方法来分配被读取的值(例如GWT_uu“值”),比如标签。
正如您所看到的,有多个“包”的值,所以我需要一个函数在这些包之间来回切换
谢谢你的帮助 这对我使用LinqPAD很有效
void Main()
{
using(var stream = File.Open(@"test.xml", FileMode.Open))
{
var serializer = new XmlSerializer(typeof(Root));
var root = (Root)serializer.Deserialize(stream);
root.Dump();
}
}
public class Package
{
public string GWT_ { get; set; }
public string ALT_ { get; set; }
public string SAT__ { get; set; }
}
public class Data
{
[XmlElement("Package")]
public Package[] Package { get; set; }
}
public class Root
{
public Data Data{get;set;}
}
您是否尝试序列化一些(虚拟)数据以验证您是否具有生成XML的正确属性?(见鬼,这甚至值得作为一个单元测试来做)
void Main()
{
using(var stream = File.Open(@"test.xml", FileMode.Open))
{
var serializer = new XmlSerializer(typeof(Root));
var root = (Root)serializer.Deserialize(stream);
root.Dump();
}
}
public class Package
{
public string GWT_ { get; set; }
public string ALT_ { get; set; }
public string SAT__ { get; set; }
}
public class Data
{
[XmlElement("Package")]
public Package[] Package { get; set; }
}
public class Root
{
public Data Data{get;set;}
}