مشکل با لود اطلاعات در xml
سلام
من یه فایل xml با فیلدهای id , nam , famil , age
دارم
از این کد استفاده می کنم و وقتی کاربر مورد نظر رو وارد کنه اطلاعات اون رو وارد تکس باکس ها می کنم
string xmlPath = Path.Combine(Application.StartupPath, "My1.xml");
XmlDocument xmlDoc = new XmlDocument();
XmlNode rootNode;
if (File.Exists(xmlPath))
{
xmlDoc.Load(xmlPath);
rootNode = xmlDoc.DocumentElement;
}
else
{
MessageBox.Show("File is not exist!");
}
XmlNodeList personNodes = xmlDoc.GetElementsByTagName("omoomi");
foreach (XmlNode node in personNodes)
{
string id = node["id"].InnerText;
if (id == textBox1.Text )
{
textBox1.Text = node["Name"].InnerText ;
textBox3.Text=node["Age"].InnerText ;
textBox2.Text=node["Familly"].InnerText ;
textBox4.Text=node["id"].InnerText ;
break;
}
}
xmlDoc.Save(xmlPath);
الان مشکلم اینه که چطور می تونم اطلاعات ایدی رکورد یکی مونده به اخر رو در تکس باکس هام نشون بدم (در لود فرم ) و نیازی به وارد کردن ایدی توسط کاربر نباشه و اتومات اطلاعات رکورد یکی مونده به اخر که در xml ثبت شده رو بده
ممنون میشم راهنماییم کنید
نقل قول: مشکل با لود اطلاعات در xml
XmlDocument doc = new XmlDocument();
XmlNodeList nodes = doc.ChildNodes;
XmlNode selectedNode = nodes[nodes.Count - 2];
نقل قول: مشکل با لود اطلاعات در xml
نقل قول:
نوشته شده توسط
mousa1992
XmlDocument doc = new XmlDocument();
XmlNodeList nodes = doc.ChildNodes;
XmlNode selectedNode = nodes[nodes.Count - 2];
سلام
ممنونم ازتون میشه بگید این کد رو کجا بذارم؟؟؟
ممنون
نقل قول: مشکل با لود اطلاعات در xml
نقل قول: مشکل با لود اطلاعات در xml
سلام
منونم اقای
danialafshari
اره این تاپیک رو دیدم اما درباره یافتن تعداد ایتم های xml و ایتم یکی مونده به اخر نمیدونم چکار کنم؟
من تا حالا با xml کار نکردم
ممنون میشم راهنمایی بفرماید
ممنون
نقل قول: مشکل با لود اطلاعات در xml
سلام
ممنون اقای danialafshari
بله من تاپیک رو دیده بودم اما در مورد بدست اوردن تعداد ایتم های درج شده در mxml و ایتم یکی مونده به اخر نمیدونم چکار کنم
من قبلا با باml کار نکردم
ممنون میشم در این مورد راهنماییم بفرمایید
ممنون
نقل قول: مشکل با لود اطلاعات در xml
سلام
ممنون اقای danialafshari
بله من تاپیک رو دیده بودم اما در مورد بدست اوردن تعداد ایتم های درج شده در xml و ایتم یکی مونده به اخر نمیدونم چکار کنم
من قبلا با باml کار نکردم
ممنون میشم در این مورد راهنماییم بفرمایید
ممنون
نقل قول: مشکل با لود اطلاعات در xml
نقل قول:
ممنونم ازتون میشه بگید این کد رو کجا بذارم؟؟؟
کجاش بذاری :قهقهه:
اقا دمت گرم کپی پیست :متفکر:
تو کدی که قرار دادم لیستی از node ها رو گرفتم و از این لیست ایتم یکی مونده به اخر رو انتخاب کردم - شما هر شماره ای که بدی همونی node رو برات برمیگردونه
موفق
نقل قول: مشکل با لود اطلاعات در xml
نقل قول:
نوشته شده توسط
mousa1992
کجاش بذاری :قهقهه:
اقا دمت گرم کپی پیست :متفکر:
تو کدی که قرار دادم لیستی از node ها رو گرفتم و از این لیست ایتم یکی مونده به اخر رو انتخاب کردم - شما هر شماره ای که بدی همونی node رو برات برمیگردونه
موفق
چه جوری آخه
سلام
چرا می خندید..!!!!؟:عصبانی++:
کپی پیست نه..
اول باید بفهمم این کد چکار می کنه , بعد خودم کاری که بخوام رو ازش درمیارم..
من با این کد میتونم تعداد ایتم های xml رو بگیرم
XmlNodeList personNodes = xmlDoc.GetElementsByTagName("Person");
textBox5.Text=personNodes.Count.ToString();
نمیدونم چطور بگم مثلا ایتم شماره پنج رو لود کنه؟
اگه نمیخندید و عصبانی نمیشه
نجات بده(لطفا)
ممنون
نقل قول: مشکل با لود اطلاعات در xml
سلام
شما ی xmlNodeList داری که مجموعه ای از نود ها هست ،درسته ؟ ( personNodes )
خب حالا از این مجموعه شما میتونی با اندیس گذاری هر نودی رو که میخوای بدست بیاری
personNodes[0]
این میشه اولین نود از مجموعه ، درسته ؟
خب حالا شم مثلا میخوای یکی مونده به اخر رو بدست بیاری
prsonNodes[personNodes.Count-2]
این میشه یکی مونده به اخر - چرا ؟ چونکه شماره گذاری توی لیست ها و ارایه ها در زبان سی شارپ از صفر شروع میشه ؛ حالا شما وقتی ی مجموعه 10 عضوی داری ، شمار 9 میشه اندیس یکی مونده به اخر و 8 میشه یکی مونده به اخر و هرکدومو که بخوای بدست بیاری
موفق باشی
نقل قول: مشکل با لود اطلاعات در xml
نقل قول:
نوشته شده توسط
mousa1992
سلام
شما ی xmlNodeList داری که مجموعه ای از نود ها هست ،درسته ؟ ( personNodes )
خب حالا از این مجموعه شما میتونی با اندیس گذاری هر نودی رو که میخوای بدست بیاری
personNodes[0]
این میشه اولین نود از مجموعه ، درسته ؟
خب حالا شم مثلا میخوای یکی مونده به اخر رو بدست بیاری
prsonNodes[personNodes.Count-2]
این میشه یکی مونده به اخر - چرا ؟ چونکه شماره گذاری توی لیست ها و ارایه ها در زبان سی شارپ از صفر شروع میشه ؛ حالا شما وقتی ی مجموعه 10 عضوی داری ، شمار 9 میشه اندیس یکی مونده به اخر و 8 میشه یکی مونده به اخر و هرکدومو که بخوای بدست بیاری
موفق باشی
ممنون
میدونم اینارو
خوب چطور بگم نام این ایتم در تکس باکس اول بره
فامیل در تکس دوم و سن در تکس سوم؟؟؟
ممنون میشم بگید
نقل قول: مشکل با لود اطلاعات در xml
لیست گره ها رو که داری کافیه با اندیس بهش دسترسی پیدا کنی.
اندیس یکی مونده به آخر هم از تعداد گره ها 2 تا کمتره.
XmlNodeList personNodes = xmlDoc.GetElementsByTagName("Person");
if (personNodes.Count > 1)
{
XmlNode node = personNodes[personNodes.Count - 2];
textBox1.Text = node["Name"].InnerText;
textBox2.Text = node["Familly"].InnerText;
textBox3.Text = node["Age"].InnerText;
textBox4.Text = node["id"].InnerText;
}
نقل قول: مشکل با لود اطلاعات در xml
سلام
ممنونم ازتون
یه دنیا..
فقط
من برا حذف از این کد که فکر میکنم خودتون در یک تاپیک پاسخ داده بودید
استفاده می کنم
string xmlPath = Path.Combine(Application.StartupPath, "MyDatabase1.xml");
XmlDocument xmlDoc = new XmlDocument();
XmlNode rootNode=null;
if (File.Exists(xmlPath))
{
xmlDoc.Load(xmlPath);
rootNode = xmlDoc.DocumentElement;
}
else
{
MessageBox.Show("File is not exist!");
}
XmlNodeList personNodes = xmlDoc.GetElementsByTagName("Person");
textBox5.Text = personNodes.Count.ToString();
if (personNodes.Count > 1)
{
for (int i = personNodes.Count - 1 ; i >= 0 ; i--)
{
XmlNode node = personNodes[i];
string name = node["Name"].InnerText;
string familly = node["Familly"].InnerText;
string age = node["Age"].InnerText;
if (name == textBox1.Text && familly == textBox2.Text && age == textBox3.Text)
{
rootNode.RemoveChild(node);
break;
}
}
}
xmlDoc.Save(xmlPath);
میخواستم بدونم راهی هست که بشه با زدن کلید حذف کل ایتم های داخل xml همگی حذف بشن؟
ممنون میشم بگید..
بازم ممنون
نقل قول: مشکل با لود اطلاعات در xml
یه مقدار توجه کنید متوجه میشید. قسمت آخر رو به اینصورت بنویسید تا همه حذف بشه:
XmlNodeList personNodes = xmlDoc.GetElementsByTagName("Person");
foreach (var node in personNodes)
{
rootNode.RemoveChild(node);
}
xmlDoc.Save(xmlPath);