オプション1
私はクリーンなアプローチはDataSet
にあなたのXMLの内容を投げた後、テーブルにフォームのコントロールをバインドすることになると思います。ここであなたを助けるための例です:
DataSet ds = new DataSet();
ds.readxml("XML File Path");
var bs = new BindingSource();
bs.DataSource = ds;
bs.DataMember = ds.table[0].tablename;
textBox1.DataBindings.Add("FirstName", bs, "Table Name");
textBox2.DataBindings.Add("FirstName", bs, "Table Name");
あなたは、XMLのためのC#クラスを作成するために、私の答えhereを使用することができます。オプション2
。次に、xmlの内容をC#クラスにデシリアライズします。これをC#クラスにデシリアライズしたら、クラスのインスタンスを操作して操作できます。インスタンスをフォームにバインドすることもできます。フォームコントロールは、C#クラスインスタンスのようにインスタンスの内容を変更できます。
完了したら、xmlにシリアル化することができます。ここにあなたのXML用に生成されたクラスは、次のとおりです。
/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
public partial class Config
{
private string typeField;
private ConfigInputs inputsField;
/// <remarks/>
public string Type
{
get
{
return this.typeField;
}
set
{
this.typeField = value;
}
}
/// <remarks/>
public ConfigInputs Inputs
{
get
{
return this.inputsField;
}
set
{
this.inputsField = value;
}
}
}
/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class ConfigInputs
{
private ConfigInputsSource_1 source_1Field;
private ConfigInputsSource_2 source_2Field;
private ConfigInputsSource_3 source_3Field;
/// <remarks/>
public ConfigInputsSource_1 Source_1
{
get
{
return this.source_1Field;
}
set
{
this.source_1Field = value;
}
}
/// <remarks/>
public ConfigInputsSource_2 Source_2
{
get
{
return this.source_2Field;
}
set
{
this.source_2Field = value;
}
}
/// <remarks/>
public ConfigInputsSource_3 Source_3
{
get
{
return this.source_3Field;
}
set
{
this.source_3Field = value;
}
}
}
/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class ConfigInputsSource_1
{
private string source_1_NameField;
private byte source_1_InputField;
/// <remarks/>
public string Source_1_Name
{
get
{
return this.source_1_NameField;
}
set
{
this.source_1_NameField = value;
}
}
/// <remarks/>
public byte Source_1_Input
{
get
{
return this.source_1_InputField;
}
set
{
this.source_1_InputField = value;
}
}
}
/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class ConfigInputsSource_2
{
private string source_2_NameField;
private byte source_2_InputField;
/// <remarks/>
public string Source_2_Name
{
get
{
return this.source_2_NameField;
}
set
{
this.source_2_NameField = value;
}
}
/// <remarks/>
public byte Source_2_Input
{
get
{
return this.source_2_InputField;
}
set
{
this.source_2_InputField = value;
}
}
}
/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class ConfigInputsSource_3
{
private string source_3_NameField;
private byte source_3_InputField;
/// <remarks/>
public string Source_3_Name
{
get
{
return this.source_3_NameField;
}
set
{
this.source_3_NameField = value;
}
}
/// <remarks/>
public byte Source_3_Input
{
get
{
return this.source_3_InputField;
}
set
{
this.source_3_InputField = value;
}
}
}
は、XMLは多少の誤差があったと私はそのようなタグが欠落していたクロージングとしてそれらを修正する必要がありました。次に、次のコードを使用して1つのものを変更してから再保存します。それは働いた:
var serializer = new XmlSerializer(typeof(Config));
var reader = new StreamReader("StackQuestion.xml");
var result = serializer.Deserialize(reader) as Config;
reader.Close();
result.Inputs.Source_1.Source_1_Name = "CodingYoshi";
serializer.Serialize(new StreamWriter("StackQuestion.xml"), result);
ファイルを読み込んだ後にファイルを編集してサーバーに再送信するので、本当にxmlにしておく必要があります。すべてがXML形式でなければなりません。 –
私はコードの別の部分からxmlを書いて送信しています。しかし、私は変更する必要があります私はインポートするには、入力し、編集し、再構築して –
@ C.macを送信するイベントを変更する必要があります私の編集のオプション2を参照してください。 – CodingYoshi