ذخیره اطلاعات در یک فایل XML
سلام
من می خوام که شماره تلفن یک سری از افراد رو توی یک فایل XML به این شکل ذخیره کنم .
<?xml version="1.0" encoding="UFT-8" ?>
<TelNumber>09155552525<TelNumber/>
<TelNumber>09155554525<TelNumber/>
<TelNumber>09155552523<TelNumber/>
<TelNumber>09155542525<TelNumber/>
<TelNumber>09155562525<TelNumber/>
و کاربر بتونه از طریق یک فرم به فایل شماره تلفن اضافه کنه . اما من هرکاری کردم نتونستم اینو درستش کنم و خیلی هم لازمش دارم . کسی هست که کمکم کنه و راهنمایی کنه .
ممنونم
نقل قول: ذخیره اطلاعات در یک فایل XML
private void btn_Save_Click(object sender, EventArgs e)
{
if (lstvwINFO.CheckedItems.Count == 0)
{
MessageBox.Show("آيتمي انتخاب نشده");
return;
}
saveFileDialog1.ShowDialog();
if (saveFileDialog1.FileName == "") return;
String configurationFile = saveFileDialog1.FileName;
XmlTextWriter XmlDoc = new XmlTextWriter(configurationFile, System.Text.Encoding.UTF8);
XmlDoc.Formatting = Formatting.Indented;
XmlDoc.WriteStartDocument();
XmlDoc.WriteStartElement("Report");
XmlDoc.WriteStartElement("Orginal");
XmlDoc.WriteElementString("OrginalStatment", lbl_OrginalStatment.Text);
XmlDoc.WriteEndElement();
XmlDoc.WriteStartElement("FromStatment");
XmlDoc.WriteElementString("Statment", lbl_from.Text);
XmlDoc.WriteEndElement();
XmlDoc.WriteStartElement("Fields");
for (int iItem = 0; iItem <= lstvwINFO.Items.Count - 1; iItem++)
{
XmlDoc.WriteStartElement("Field");
if (lstvwINFO.Items[iItem].Checked)
XmlDoc.WriteElementString("Ticked", "1");
else
XmlDoc.WriteElementString("Ticked", "0");
XmlDoc.WriteElementString("Name", lstvwINFO.Items[iItem].SubItems[1].Text);
XmlDoc.WriteElementString("Alias", lstvwINFO.Items[iItem].SubItems[0].Text);
XmlDoc.WriteEndElement();
}
XmlDoc.WriteEndElement();
XmlDoc.WriteStartElement("Conditions");
for (int i = 0; i < filterstring_arraylist.Count; i++)
{
XmlDoc.WriteStartElement("Condition");
XmlDoc.WriteElementString("Code", filterstring_arraylist[i].ToString());
XmlDoc.WriteElementString("Text", Filter_condition_Listbox.Items[i].ToString());
XmlDoc.WriteEndElement();
}
XmlDoc.WriteEndElement();
XmlDoc.WriteEndElement();
XmlDoc.Close();
}
اين يك قطعه كد براي save كردن تو xml هست كه من واسه كي از برنامه هام نوشتم....ببين كمكت ميكنه...بازم مشكلي بود در خدمتيم
نقل قول: ذخیره اطلاعات در یک فایل XML
سلام دوست عزیز ،
بهتر است که از شیء DataTable و متدهای ReadXml و WriteXml استفاده نمایید ، این دو متد وظیفه خواندن/نوشتن اطلاعات شیء DataTable از/بر روی فایل Xml را بر عهده دارند ،
مثالی از MSDN :
private static void DemonstrateReadWriteXMLDocumentWithStream()
{
DataTable table = CreateTestTable("XmlDemo");
PrintValues(table, "Original table");
// Write the schema and data to XML in a memory stream.
System.IO.MemoryStream xmlStream = new System.IO.MemoryStream();
table.WriteXml(xmlStream, XmlWriteMode.WriteSchema);
// Rewind the memory stream.
xmlStream.Position = 0;
DataTable newTable = new DataTable();
newTable.ReadXml(xmlStream);
// Print out values in the table.
PrintValues(newTable, "New table");
}
private static DataTable CreateTestTable(string tableName)
{
// Create a test DataTable with two columns and a few rows.
DataTable table = new DataTable(tableName);
DataColumn column = new DataColumn("id", typeof(System.Int32));
column.AutoIncrement = true;
table.Columns.Add(column);
column = new DataColumn("item", typeof(System.String));
table.Columns.Add(column);
// Add ten rows.
DataRow row;
for (int i = 0; i <= 9; i++)
{
row = table.NewRow();
row["item"] = "item " + i;
table.Rows.Add(row);
}
table.AcceptChanges();
return table;
}
private static void PrintValues(DataTable table, string label)
{
// Display the contents of the supplied DataTable:
Console.WriteLine(label);
foreach (DataRow row in table.Rows)
{
foreach (DataColumn column in table.Columns)
{
Console.Write("\t{0}", row[column]);
}
Console.WriteLine();
}
}