erfantarighi
چهارشنبه 05 اسفند 1394, 11:09 صبح
سلام
در این تابیک قصد دارم به شما دوستان عزیز کار کردن با فایل های XML رو آموزش بدم
اول یه کلاس با اسم دلخواه میسازیم (در این مثال اسم کلاس LogFile.cs میباشد)
بعد کتابخانه های کار با فایل ها XML رو فراخوانی میکنیم :
using System.Xml;
using System.Xml.Linq;
using System.Xml.Resolvers;
using System.Xml.Schema;
using System.Xml.Serialization;
using System.Xml.XmlConfiguration;
using System.Xml.XPath;
using System.Xml.Xsl;
ما در این مثال به تمامی این کتابخانه ها نیاز نداریم صرفا جهت آشنایی شما دوستان عزیز با این کتابخانه ها اضافه شده .
در این مرحله یک کلاس عمومی اضافه میکنیم با اسم > Quote :
public class Quote
{
public string Timee;
public string Datee;
public string IPPP;
public string Actionn;
public string Userr;
}
در مرحله بعدی یک فانگشن با نام (WriteDocument) ایجاد میکنیم :
public void WriteDocument(Quote q)
{
var settings = new System.Xml.XmlWriterSettings
{
OmitXmlDeclaration = true,
Indent = true,
Encoding = UTF8Encoding.UTF8,
};
if (File.Exists(@"C:\text.xml") == false)
{
using (XmlWriter writer = XmlWriter.Create(@"C:\text.xml", settings))
{
writer.WriteStartDocument();
writer.WriteStartElement("LOGG");
writer.WriteStartElement("LOG");
writer.WriteAttributeString("User", q.Userr);
writer.WriteElementString("Date", q.Datee);
writer.WriteElementString("Time", q.Timee);
writer.WriteElementString("IP", q.IPPP);
writer.WriteElementString("Action", q.Actionn);
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
writer.Close();
}
}
else
{
XDocument xDocument = XDocument.Load(@"C:\text.xml");
XElement root = xDocument.Element("LOGG");
IEnumerable<XElement> rows = root.Descendants("LOG");
XElement firstRow = rows.First();
firstRow.AddBeforeSelf(
new XElement("LOG",
new XElement("User", q.Userr),
new XElement("Date", q.Datee),
new XElement("Time", q.Timee),
new XElement("IP", q.IPPP),
new XElement("Action", q.Actionn)));
xDocument.Save(appadd);
}
}
این فانگشن ستینگ های مناسب مثل Encode رو برای فایل تنظیم کرده و در مرحله بعد وجود فایل رو چک میکنه اگر فایل XML وجود نداشت آن را ساخته و اطلاعات را در اون درج میکند ولی اگر فایل وجود داشت آن را باز کرده و اطلاعات جدید را در آن درج میکند .
حالا به یک فانگشن دگ احتیاج داریم که WriteDocument را فراخوانی و مقادیر مناسب را به آن ارجاع دهد .
public void setlogfile(string time, string date, string ip, string action, string user)
{
Quote que = new Quote { Timee = time, Datee = date, IPPP = ip, Actionn = action, Userr = user };
WriteDocument(que);
}
حالا در فرم خود میتوانید فانگشن setlogfile رو فراخوانی کنید تا فایل XML درج شود .
ببخشید اگه کدهارو زیاد باز نکردم یه مقدار وقت کم بود .
موفق باشید.
در این تابیک قصد دارم به شما دوستان عزیز کار کردن با فایل های XML رو آموزش بدم
اول یه کلاس با اسم دلخواه میسازیم (در این مثال اسم کلاس LogFile.cs میباشد)
بعد کتابخانه های کار با فایل ها XML رو فراخوانی میکنیم :
using System.Xml;
using System.Xml.Linq;
using System.Xml.Resolvers;
using System.Xml.Schema;
using System.Xml.Serialization;
using System.Xml.XmlConfiguration;
using System.Xml.XPath;
using System.Xml.Xsl;
ما در این مثال به تمامی این کتابخانه ها نیاز نداریم صرفا جهت آشنایی شما دوستان عزیز با این کتابخانه ها اضافه شده .
در این مرحله یک کلاس عمومی اضافه میکنیم با اسم > Quote :
public class Quote
{
public string Timee;
public string Datee;
public string IPPP;
public string Actionn;
public string Userr;
}
در مرحله بعدی یک فانگشن با نام (WriteDocument) ایجاد میکنیم :
public void WriteDocument(Quote q)
{
var settings = new System.Xml.XmlWriterSettings
{
OmitXmlDeclaration = true,
Indent = true,
Encoding = UTF8Encoding.UTF8,
};
if (File.Exists(@"C:\text.xml") == false)
{
using (XmlWriter writer = XmlWriter.Create(@"C:\text.xml", settings))
{
writer.WriteStartDocument();
writer.WriteStartElement("LOGG");
writer.WriteStartElement("LOG");
writer.WriteAttributeString("User", q.Userr);
writer.WriteElementString("Date", q.Datee);
writer.WriteElementString("Time", q.Timee);
writer.WriteElementString("IP", q.IPPP);
writer.WriteElementString("Action", q.Actionn);
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
writer.Close();
}
}
else
{
XDocument xDocument = XDocument.Load(@"C:\text.xml");
XElement root = xDocument.Element("LOGG");
IEnumerable<XElement> rows = root.Descendants("LOG");
XElement firstRow = rows.First();
firstRow.AddBeforeSelf(
new XElement("LOG",
new XElement("User", q.Userr),
new XElement("Date", q.Datee),
new XElement("Time", q.Timee),
new XElement("IP", q.IPPP),
new XElement("Action", q.Actionn)));
xDocument.Save(appadd);
}
}
این فانگشن ستینگ های مناسب مثل Encode رو برای فایل تنظیم کرده و در مرحله بعد وجود فایل رو چک میکنه اگر فایل XML وجود نداشت آن را ساخته و اطلاعات را در اون درج میکند ولی اگر فایل وجود داشت آن را باز کرده و اطلاعات جدید را در آن درج میکند .
حالا به یک فانگشن دگ احتیاج داریم که WriteDocument را فراخوانی و مقادیر مناسب را به آن ارجاع دهد .
public void setlogfile(string time, string date, string ip, string action, string user)
{
Quote que = new Quote { Timee = time, Datee = date, IPPP = ip, Actionn = action, Userr = user };
WriteDocument(que);
}
حالا در فرم خود میتوانید فانگشن setlogfile رو فراخوانی کنید تا فایل XML درج شود .
ببخشید اگه کدهارو زیاد باز نکردم یه مقدار وقت کم بود .
موفق باشید.