PDA

View Full Version : مشکل با ساخت فایل xml



NIMA_1981
پنج شنبه 17 شهریور 1390, 09:13 صبح
سلام دوستان من با کد زیر یک سری اطلاعات را داخل یک فایل xml ذخیره میکنم

XDocument xmlDoc = XDocument.Load(Server.MapPath("People.xml"));

xmlDoc.Element("Persons").Add(new XElement("Person", new XElement("FirstName",num1),
new XElement("LastName",num2),new XElement("Father",num2),
new XElement("Job",num2), new XElement("Address", num3)));

xmlDoc.Save(Server.MapPath("People.xml"));

return "add record";


اما باید فایل xml وحود داشته باشه و این کد هم داخل فایل باشه تا کار کنه

<?xml version="1.0" encoding="utf-8"?>
<Persons>

</Persons>

حالا میشه کاری کرد که از ابتدا همه فایل را با هم بسارزه و نیاز به دستی نوشت

TeacherMath
پنج شنبه 17 شهریور 1390, 09:50 صبح
سلام. می تونید اول با xmltextWriter و filestream فایل people.xml را ایجاد کنید.

Himalaya
پنج شنبه 17 شهریور 1390, 11:11 صبح
سلام

readonly List<Person> _persons = new List<Person>
{
new Person { Name = "Amir",Family = "Ajorlo",Age = 26},
new Person { Name = "Hasan",Family = "Eskandari",Age = 33},
new Person { Name = "Ebrahim",Family = "Amiri",Age = 30},
};

protected void ButCreateXml_Click(object sender, EventArgs e)
{
var name = Guid.NewGuid().ToString().Replace("-", "");

// create xml document and define encoding/version
var doc = new XmlDocument();
doc.AppendChild(doc.CreateXmlDeclaration("1.0", "UTF-8", null));

// create root element
var root = doc.CreateElement("Persons");
doc.AppendChild(root);

// create child element for root element
foreach (var p in _persons)
{
var per = doc.CreateElement("Person");
per.SetAttribute("Age", p.Age.ToString());
per.InnerText = p.Name + " " + p.Family;
root.AppendChild(per);
}

// save xml document with unique name in root website
doc.Save(Server.MapPath("~/" + name + ".xml"));
}


public class Person
{
public string Name { get; set; }
public string Family { get; set; }
public int Age { get; set; }
}

محتوای فایل xml

<?xml version="1.0" encoding="UTF-8"?>
<Persons>
<Person Age="26">Amir Ajorlo</Person>
<Person Age="33">Hasan Eskandari</Person>
<Person Age="30">Ebrahim Amiri</Person>
</Persons>