私は次のことを理解できないようで、ここで利用可能なトピックを最大限に活用しようとしました.
私は次の文書を持っています。
<?xml version="1.0"?>
<Root>
<Data>
<Package>
<GWT_></GWT_>
<ALT_></ALT_>
<SAT__></SAT__>
</Package>
<Package>
<GWT_></GWT_>
<ALT_></ALT_>
<SAT__></SAT__>
</Package>
</Data>
</Root>
すべてを逆シリアル化するためのクラスと関数を作成しました。
クラス:
[Serializable()]
public class Package
{
[System.Xml.Serialization.XmlElement("GWT_")]
public string GWT_ { get; set; }
[System.Xml.Serialization.XmlElement("ALT_")]
public string ALT_ { get; set; }
[System.Xml.Serialization.XmlElement("SAT__")]
public string SAT__ { get; set; }
}
[Serializable()]
[System.Xml.Serialization.XmlRoot("Root")]
public class Root
{
[System.Xml.Serialization.XmlArray("Data")]
[System.Xml.Serialization.XmlArrayItem("Package", typeof(Package))]
public Package[] Package { get; set; }
}
そして機能:
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();
}
}
まず、「ルート」を「パッケージ」に暗黙的に変換できないというエラーが表示されます。
そして、読み取った値 (例: GWT_"value") をラベルに割り当てる方法が必要です。ご覧のとおり、値の「パッケージ」が複数あるため、これらのパッケージを前後に切り替える関数が必要です。
助けてくれてありがとう!