اضافه کردن نود به انتهای xml file
فایل ایکس ام ال از قبل ساخته شده و الان می خوایم یک نود جدید بهش اضافه کنم و از xmlTextWriter می خوام استفاده کنم.هر جا گشتم دیدم از اول میاد تمام نود ها رو دوباره می گیره و بعد میریزه اما اینجا می خوام فقط یک نود و به آخر فایل اضافه بشه.
تو ایکس ام ال چیزی مثل یک اشاره گر نداریم که بدونیم الان کجا هستیم و به رایتر بگیم از اونجا به بعد رایت کنه؟؟
نقل قول: اضافه کردن نود به انتهای xml file
مثل اینکه کسی نمیدونه !!!!! من هم مشکل همینه ... کسی نمیتونه کمکی کنه ؟!
نقل قول: اضافه کردن نود به انتهای xml file
می دونی منم فکر می کنم اصلن نمی شه این کارو کرد!!!
چون ما از موضوع درست و سر جاش استفاده نکردیم
نقل قول: اضافه کردن نود به انتهای xml file
من با یه روش زمانبر میتونم این کارو انجام بدم ولی اصولی نیست ...
من محتویات یک Treeview رو توی یک xml ذخیره و به همون شکل قبلی لود میکنم .. و اگه بخوام دوباره بهش چیزی اضافه کنم میشه توی Treeview اضافش کنم و اطلاعات قبلی رو هم لود کنم و ذخیره مجدد.... (البته همه این کارا خودکار انجام میشه ) فقط اینجوری زمان زیادی میبره .. !!!!
شاید کسی بتونه ... در مورد Xml توضیحات کامل هست ولی در مورد استفاده از اون مثلا در .net کسی چیزی نمیدونه ؟!!!!!!:گریه:
نقل قول: اضافه کردن نود به انتهای xml file
ببخشید ما می خوایم از SAX استفاده کنیم که کارمون سریعتر و راحت تر بشه نه اینکه دوباره کاری بکنیم وگرنه واسه این کار از همون متدهای DOM در XML استفاده می کردیم دیگه....
نقل قول: اضافه کردن نود به انتهای xml file
آره خوب ولی چجوری .؟!!! من که هنوز مرجع فارسی پیدا نکرم که توضیحات داشته باشه ... همون چیزهای هم که یاد گرفتم از سایتهای خارجی تحقیق کردم ... ولی دیگه خیلی پیچیده شده فارسی باشه نمیشه راحت فهمید چه برسه به انگلیسی !!!
سراغ داشتی مارو هم خبر کن ..
نقل قول: اضافه کردن نود به انتهای xml file
1 مثال کامل توی کتاب Beginning XML with C# 2008 هست.برای حالت DOM
فکر می کنم خیلی واضح باشه. این کتاب خیلی خوبیه
موفق باشی
نقل قول: اضافه کردن نود به انتهای xml file
کتابی که بالا اشاره کردید منبع خوبی است می توانید از آن استفاده کنید.
در .Net هم هرچه بخواهید برای کار با Xml وجود دارد...
اما کد زیر شاید به درد شما بخورد:
XmlDocument doc=new XmlDocument();
doc.Load("File.xml");
XmlElement el=doc.CreateElement("ElementName");
el.InnerText="Text";
doc.DocumentElement.AppendChild(el);
کد زیر را همینطوری Type کردم شاید ایراد تایپی داشته باشد ولی اگر خودتان تایپ کنید در یک محیط مثل Visual Studio حتما جواب می دهد
موفق باشید
نقل قول: اضافه کردن نود به انتهای xml file
خوب من یه کتاب خوب در مورد xml خریدم که آموزش کاملش برای Asp هست ...
فقط الان مشکل استفاده از Dom هست ... کسی میتونه بگه برای اینکه با کمبود حافظه توی فایل های بزرگ مواجه نشیم میتونیم چیکار کنیم ؟!؟!؟!
Dom مشکلش اشغال کردن حافظست و TextReader و TextWriter هم که مشکلشون اینه که ناقص هستند یعنی نمیشه که delete update و حتی ویرایشی روی اطلاعات انجام داد با اونها ...
کسی راه کار خوبی سراغ نداره ؟!
نقل قول: اضافه کردن نود به انتهای xml file
با سلام
به روش زیر میتوانید این کارو انجام بدین.
اولا باید namespace زیر را وارد کنید
using System.Xml;
یک شی از xmlDocument میسازی و لودش می کنی
XmlDocument xmlDoc = new XmlDocument();
string str = Server.MapPath("xml.xml");
xmlDoc.Load(str);
حالا شروع به ساختن نودها میکنی
XmlElement f1= xmlDoc.CreateElement("f1");
XmlElement f2= xmlDoc.CreateElement("f2");
XmlElement f3= xmlDoc.CreateElement("f3");
XmlElement f4= xmlDoc.CreateElement("f4");
XmlElement f5= xmlDoc.CreateElement("f5");
XmlElement f6= xmlDoc.CreateElement("f6");
نودها را مقدار دهی میکنیم
f2.InnerText = f2.Text.Replace(" ", "_");
f3.InnerText = f3.Text;
f4.InnerText = f4.Text;
f5.InnerText = f5.Text;
f6.InnerText = f6.Text;
نودها را اضافه میکنیم
f1.AppendChild(f2);
f1.AppendChild(f3);
f1.AppendChild(f4);
f1.AppendChild(f5);
f1.AppendChild(f6);
نودها را به نود اصلی append کرده و در نهایت فایل نهایی را ذخیره میکنیم.
xmlDoc.DocumentElement.AppendChild(f1);
xmlDoc.Save(Server.MapPath("xml.xml"));