PDA

View Full Version : وارد کردن فایل xml در برنامه



c-sharp_South
دوشنبه 12 تیر 1391, 18:17 عصر
سلام . میخواستم بدونم چطوری میشه یک فایل با پسوند xml رو درون برنامه import کرد که اطلاعات فایل توی یک textBox نشون داده بشه؟
کاربر برنامه رو باز میکنه و فایل xml مورد نظرش رو به برنامه میده و برنامه اطلاعات فایل xml رو نشون میده.

uniqueboy_ara
دوشنبه 12 تیر 1391, 20:44 عصر
تو این پروژه به ساده ترین روش ممکن این کار رو برات انجام دادم :) هم میتونی اطلاعات رو داخل فایل XML ذخیره کنی و هم میتونی اونو بخونی و داخل برنامه نشون بدی - روش کار: XMLserialization
.
89097
http://up.vatandownload.com/images/ic7nf77309dzb5y72wnz.jpg

sayvan
دوشنبه 12 تیر 1391, 20:50 عصر
سلام
اول باید فضای نام زیر رو به پروژه وارد کنی
using System.Xml;
بعد رو دکمه کدا رو بنویس

XmlDocument doc = new XmlDocument();
doc.Load("d:\\1-10.xml");
this.textBox1.Text = doc.InnerXml;

مسیر فایلت رو درون تابع لود مینویسی

c-sharp_South
دوشنبه 12 تیر 1391, 22:51 عصر
مرسی :قلب:
اگه بخوام یک قسمت خواصی از xml رو نشون بده توی textBox باید چیکار کنم؟
مثلا:
<?xml version="1.0" encoding="UTF-8"?><settings><aot>false</aot><authentication>normal</authentication><autologin>false</autologin><encryption>optional</encryption><installupdates>yes</installupdates><language>en</language><last_address>mehdiizadi@myhost</last_address><last_autoupdate>0</last_autoupdate><last_password>%E5%E7%E6%E1%E3%E4%E5</last_password><last_password_remember>true</last_password_remember><lastheight>560</lastheight><lastposx>400</lastposx><lastposy>20</lastposy><lastwidth>330</lastwidth><serveraddress></serveraddress><serverport></serverport><softwaretrack>stable</softwaretrack><welcomescreen>no</welcomescreen><welcomesettings>false</welcomesettings></settings>
اگه بخوام فقط:
<last_address>mehdiizadi@myhost</last_address>
<last_password>%E5%E7%E6%E1%E3%E4%E5</last_password>
رو بهم نشون بده باید چیکار کنم که قسمت های دیگه حذف بشن از textBox؟

c-sharp_South
دوشنبه 12 تیر 1391, 23:19 عصر
یا واضح تر بگم.
میخوام توی دو تا textbox جدا مقدار last_address و مقدار last_password رو نشون بده.

uniqueboy_ara
دوشنبه 12 تیر 1391, 23:47 عصر
شما میخوای خود تگ ها ( <Last_Adress></Last_Adress> ) هم توی تکست باکس ها باشه؟

c-sharp_South
دوشنبه 12 تیر 1391, 23:49 عصر
شما میخوای خود تگ ها ( <Last_Adress></Last_Adress> ) هم توی تکست باکس ها باشه؟

نه ، فقط مقدارشون باشه

uniqueboy_ara
سه شنبه 13 تیر 1391, 00:05 صبح
خوب عزیزم، اون پروژه ای که برات گذاشتم همین کارو میکنه دیگه!
شما فایل XML رو میخونی، بعدش هر فیلدی که لازم داشتی رو ازش استفاده می کنی
فقط فرقش اینه که من اینجا مقدار رو توی لیبل ریختمريا، شما میخوای توی تکست باکس بریزی!

c-sharp_South
سه شنبه 13 تیر 1391, 00:12 صبح
این رو متوجه شدم.
واقعا مرسی بابت زحمتی که کشیدین و سورس رو آماده کردین.
ولی هرچی سعی کردم اون جوری که میخوام بشه کد نویسیم داره error میده.
خودم هم توش موندم که مشکل کجاست و چرا نمیتونم الان که سورس رو دارم حل کنم مشکلم رو!!!

uniqueboy_ara
سه شنبه 13 تیر 1391, 00:32 صبح
خیلی راحته، شما کافیه که کلاس Data.cs رو باز کنی و به ازای هر کدوم از فیلد هایی که داری، یه پروپرتی به اون کلاس اضافه کنی! همین...

<?xml version="1.0" encoding="UTF-8"?>
<settings>

<aot>false</aot>
<authentication>normal</authentication>
<autologin>false</autologin>
<encryption>optional</encryption>
<installupdates>yes</installupdates>
<language>en</language>
<last_address>mehdiizadi@myhost</last_address>
<last_autoupdate>0</last_autoupdate>
<last_password>%E5%E7%E6%E1%E3%E4% E5</last_password>
<last_password_remember>true</last_password_remember>
<lastheight>560</lastheight>
<lastposx>400</lastposx>
<lastposy>20</lastposy>
<lastwidth>330</lastwidth>
<serveraddress></serveraddress>
<serverport></serverport>
<softwaretrack>stable</softwaretrack>
<welcomescreen>no</welcomescreen>
<welcomesettings>false</welcomesettings>

</settings>

c-sharp_South
سه شنبه 13 تیر 1391, 17:24 عصر
توی فایل class.cs این ها رو ریختم:

public string last_address { get; set; }
public string last_password { get; set; }
توی Button هم این کد ها رو زدم:

XmlSerializer Serial = new XmlSerializer(typeof (Data));
using (OpenFileDialog ofd = new OpenFileDialog())
{
ofd.Filter = "XML file|*.xml";
if (ofd.ShowDialog() == DialogResult.OK)
{
Data XMLdata;
string path = ofd.FileName;
using (FileStream Stream = new FileStream(path, FileMode.Open))
{
XMLdata = (Data)Serial.Deserialize(Stream);
lblName.Text = XMLdata.last_address;
lblEmail.Text = XMLdata.last_password;
}
}
}
موقع اجرا مشکل نداره ، ولی وفتی که فایل رو Import میکنم ارور میده از این خط:

XMLdata = (Data)Serial.Deserialize(Stream);

samadblaj
سه شنبه 13 تیر 1391, 19:45 عصر
سلام روز بخیر;

با کلاس های پیوستی set کن.

در ضمن توجه کن باید پروژه رو publish کنی./


public class data