PDA

View Full Version : خواندن از فایل XML



mehrdad_shahian
جمعه 28 مرداد 1390, 14:41 عصر
سلام
من یه فایل xml دارم که رکودهام داخلش قرار داره.من چگونه میتونم این فایل رو به صورت رکورد به رکورد بخونم و از مقادیر فیلدها استفاده کنم.مرسی
<NewDataSet>
- <Teachers>
<Teachers_id>3</Teachers_id>
<Teachers_fname>مهرداد</Teachers_fname>
<Teachers_lname>علیپور</Teachers_lname>
<Teachers_termname>بهار</Teachers_termname>
<Teachers_classcount>5</Teachers_classcount>
<Teachers_transportation>600000</Teachers_transportation>
<Teachers_booksals>30000</Teachers_booksals>
<Teachers_amountpid>0</Teachers_amountpid>
<Teachers_description>سیسیسیس</Teachers_description>
</Teachers>
- <Teachers>
<Teachers_id>2</Teachers_id>
<Teachers_fname>امید</Teachers_fname>
<Teachers_lname>حسینی</Teachers_lname>
<Teachers_termname>تابستان</Teachers_termname>
<Teachers_classcount>2</Teachers_classcount>
<Teachers_transportation>0</Teachers_transportation>
<Teachers_booksals>0</Teachers_booksals>
<Teachers_amountpid>0</Teachers_amountpid>
<Teachers_description />
</Teachers>
</NewDataSet>

faravaghi
جمعه 28 مرداد 1390, 15:47 عصر
سلام


بعد برای خواندن اون از روش زیر استفاده کنید:


using System.Xml;
using System.IO;

// Modem:
private int _Teachers_id;
private string _Teachers_fname;
private string _Teachers_lname;
private string _Teachers_termname;
private int _Teachers_classcount;
private int _Teachers_transportation;
private int _Teachers_booksals;
private int _Teachers_amountpid;
private string _Teachers_description;

protected internal void GetTeachers()
{
try
{
if (File.Exists(_path))
{
XmlValidatingReader vr = new XmlValidatingReader(new XmlTextReader(_path));
vr.ValidationType = ValidationType.None;
vr.EntityHandling = EntityHandling.ExpandEntities;

XmlDocument doc = new XmlDocument();
doc.Load(vr);

vr.Close();

foreach (XmlElement element in doc.SelectNodes("//Teachers"))
{
_Teachers_id = Convert.ToInt32(element.ChildNodes[0].InnerText);
_Teachers_fname = element.ChildNodes[1].InnerText;
_Teachers_lname = element.ChildNodes[2].InnerText;
_Teachers_termname = element.ChildNodes[3].InnerText;
_Teachers_classcount = Convert.ToInt32(element.ChildNodes[4].InnerText);
_Teachers_transportation = Convert.ToInt32(element.ChildNodes[5].InnerText);
_Teachers_booksals = Convert.ToInt32(element.ChildNodes[6].InnerText);
_Teachers_amountpid = Convert.ToInt32(element.ChildNodes[7].InnerText);
_Teachers_description = element.ChildNodes[8].InnerText;
}
}
}
catch (Exception ex) { MessageBox.Show(ex.Message); }
}

البته اینو بگم برای اینکه همه رکورد ها رو بخونید متغیر هایی که من نوشتم رو به صورت آرایه دربیارید و تو حلقه یکی به اندیس آرایه اضافه کنید.
تو این حالت که من نوشتم هر رکورد رو که بخونه تو همین متغیر ها می ریزه، یعنی انگاری شما فقط رکورد آخر رو بدست آوردید.