PDA

View Full Version : سوال: چگونگی اضافه کردن Version به XML



KooRoSH_irooni
دوشنبه 15 شهریور 1389, 17:06 عصر
سلام.دوستان من میخوام یک سری اطلاعات رو تو یه فایل xml ذخیره کنم..اینجوری نوشتم:


XmlDocument xDoc = newXmlDocument();
XmlNode book = xDoc.CreateElement("book");
XmlNode name = xDoc.CreateElement("name");
XmlNode year = xDoc.CreateElement("year");
name.InnerText = "myBook";
year.InnerText = "myBookYear";
book.AppendChild(name);
book.AppendChild(year);
xDoc.AppendChild(book);
xDoc.Save("c:\\a.xml");

فایل ایجاد میشه و باز هم میشه ولی خط اول xml یا همون version رو خودش اضافه نمی کنه...از اونجایی که من تقریبا هیچ اطلاعی راجب این نوع فایل ها ندارم اگه لطف کنین یه توضیحی بدین که آیا به مشکل بر می خورم؟خودم خط اولش رو دستی اضافه کنم؟چون این فایل قراره بخشی از خروجی یک پروژه باشه و باید استاندارد باشه وقتی تحویلش میدم تا ترف هم به مشکل بر نخوره...

sia_2007
دوشنبه 15 شهریور 1389, 19:18 عصر
اگه میخوای اطلاعات یه Book رو ارسال کنی
یه کلاس با مشخصاتش مثل Name و Year بساز
بعدش آبجکتهای اون کلاسه رو Serialize اش کن
استاندارد ترین حالت هم سریالایز به صورت SOAP هستش
که تو تمومی پلتفرم ها قابل استفاده هستش.
این چیزی که ساختی اصلا استاندارد نیست؛ با اون یه خط هم مشکلش رفع نمیشه
هر XML ای استاندارد نیست؛ کما این که هر گردی ؛ گردو نیست.

mehdi.mousavi
پنج شنبه 18 شهریور 1389, 12:03 عصر
سلام.دوستان من میخوام یک سری اطلاعات رو تو یه فایل xml ذخیره کنم..اینجوری نوشتم: فایل ایجاد میشه و باز هم میشه ولی خط اول xml یا همون version رو خودش اضافه نمی کنه...از اونجایی که من تقریبا هیچ اطلاعی راجب این نوع فایل ها ندارم اگه لطف کنین یه توضیحی بدین که آیا به مشکل بر می خورم؟خودم خط اولش رو دستی اضافه کنم؟چون این فایل قراره بخشی از خروجی یک پروژه باشه و باید استاندارد باشه وقتی تحویلش میدم تا ترف هم به مشکل بر نخوره...

سلام.
باید به این شکل عمل کنید:

XmlDocument doc = new XmlDocument();
XmlDeclaration xmlDeclaration = doc.CreateXmlDeclaration("1.0", "utf-8", null);
doc.InsertBefore(xmlDeclaration, doc.DocumentElement);

XmlElement root = doc.CreateElement("Books");
doc.AppendChild(root);

XmlElement book = doc.CreateElement("Book");
book.InnerText = "My Book";
root.AppendChild(book);

XmlElement name = doc.CreateElement("Name");
name.InnerText = "Book's Name";
root.AppendChild(name);

doc.Save("d:\\temp0.xml");


اما اگر استفاده از LINQ براتون امکان پذیره، میتونید جای کد بالا، از این کد استفاده کنید:


XElement xml = new XElement("Books",
new XElement("Book", "My Book"),
new XElement("Name", "Book's Name")
);

xml.Save("d:\\temp1.xml");


دقت کنید که در هر دو پیاده سازی، XML Declaration به فایل اضافه میشه. به بیان دیگه، هر دو روش این خروجی رو تولید خواهند کرد:

<?xml version="1.0" encoding="utf-8"?>
<Books>
<Book>MyBook</Book>
<Name>Book's Name</Name>
</Books>

موفق باشید.

amirashna
دوشنبه 03 آبان 1389, 01:42 صبح
سلام
وب سایت شما را دیدم
واقعا فوق العاده بود شما سطحتون خیلی بیش از ما تازه کارهاست!!!

اگه ممکنه یه منبع خوب برای XML معرفی کنید .هدف من ذخیره اطلاعات به ضورت XML است

mehdi.mousavi
دوشنبه 03 آبان 1389, 03:37 صبح
سلام اگه ممکنه یه منبع خوب برای XML معرفی کنید .هدف من ذخیره اطلاعات به ضورت XML است

سلام.
منظورتون معرفی منبعی برای ذخیره اطلاعات بصورت XML هستش؟ اگر اینطوره، می تونید با یه جستجوی ساده در MSDN به خروارها مثال و روش برسید. اما اگر هدفتون یادگیری اصولی XML (در مرحله اول) هستش، کتاب XML Step by Step (http://www.amazon.com/XML-Step-DV-DLT-Fundamentals/dp/0735610207/ref=sr_1_1?ie=UTF8&qid=1287959268&sr=8-1) نوشته Michael J. Young بهترین کتابی هستش که من در این مورد خوندم (البته 10 سال از اون موقع گذشته، اما هنوز هم کتاب خوبی هستش، ضمن اینکه فکر میکنم دو / سه سال بعدش تجدید چاپ شد).

با اینحال اگر سوال خاصی در مورد ذخیره اطلاعات بصورت XML دارید مطرح کنید تا پاسخ بدم.

موفق باشید.