言語DataTable.Nameを追加せずに:C#保存XMLファイルをXMLファイルに
を私はDataTableのからのDataGridViewにロードされているXMLファイルを保存したいです。 .WriteXML()を使用するためには、DataTableに名前を付ける必要があることを知っています。私の問題は、これを行うと、DataTableの名前は、XMLファイル内の各要素の周りのラッパーとして使用されることです。私はこれが起こることを望んでいない。 XMLファイルの値を編集して同じレイアウトに保持したいだけです。
これは私のコードは、データテーブルとのDataGridViewに入れられている方法です。
string pathOfXML = C:\\FIlePath;
DataTable dt = new DataTable("XML_Table");
public void XML_Document()
{
XML_FILE = XDocument.Load(pathOfXML);
dt.Columns.Add("Name");
dt.Columns.Add("Value");
var rows = doc.Root.Descendants().Select(element => new
{
Name = element.Name,
Value = element.Value,
});
rows.ToList().ForEach(i => dt.Rows.Add(i.Name, i.Value));
dgv_XML.DataSource = dt;
}
それはDataGridViewのを移入することができますので、私はその後、)(私のFormLoadでこのメソッドを呼び出します。
私はここで、ボタンのクリックイベントとXMLの変更を保存しようとしているコードです:
void btn_Save_Click(object sender, EventArgs e)
{
dt.WriteXML(pathOfXML);
Messagebox.Show("Save Successful!");
}
XMLファイルが(それは非常に基本的です)、次のようになります。
<Root>
<Element> Value </Element>
<Element> Value </Element>
<Element> Value </Element>
<Element> Value </Element>
<Element> Value </Element>
<Element> Value </Element>
<Element> Value </Element>
</Root>
これは、私がそれを保存しようとするたびに次のようになります。
<Root>
<XML_Table>
<Name> Element Name </Name>
<Value> Element Value </Value>
</XML_Table>
<XML_Table>
<Name> Element Name </Name>
<Value> Element Value </Value>
</XML_Table>
<XML_Table>
<Name> Element Name </Name>
<Value> Element Value </Value>
</XML_Table>
<XML_Table>
<Name> Element Name </Name>
<Value> Element Value </Value>
</XML_Table>
<XML_Table>
<Name> Element Name </Name>
<Value> Element Value </Value>
</XML_Table>
<XML_Table>
<Name> Element Name </Name>
<Value> Element Value </Value>
</XML_Table>
<XML_Table>
<Name> Element Name </Name>
<Value> Element Value </Value>
</XML_Table>
</Root>
これは、値を編集し、それらを保存し、しかし、すべての要素の周りに "XML_Table"を置くだけで、私はちょうどその "XML_Table"が起こるのを止めたいと思っています。
DataTable dtは2回定義されます。両方のメソッドの外側にあるパブリックスペースに移動すると、 'dt'の同じインスタンスが使用されます。 – jdweng
@jdweng良いアイが、私はまだ同じ問題があります。 –
私たちにあなたが望むXMLを教えてください。 –