হয় স্পষ্টভাবে ঘোষণা লিখুন, বা একটি StringWriter
এবং কল ব্যবহার করুন Save()
:
using System;
using System.IO;
using System.Text;
using System.Xml.Linq;
class Test
{
static void Main()
{
string xml = @"<?xml version='1.0' encoding='utf-8'?>
<Cooperations>
<Cooperation />
</Cooperations>";
XDocument doc = XDocument.Parse(xml);
StringBuilder builder = new StringBuilder();
using (TextWriter writer = new StringWriter(builder))
{
doc.Save(writer);
}
Console.WriteLine(builder);
}
}
আপনি সহজেই এটিকে এক্সটেনশন পদ্ধতি হিসাবে যুক্ত করতে পারেন:
public static string ToStringWithDeclaration(this XDocument doc)
{
if (doc == null)
{
throw new ArgumentNullException("doc");
}
StringBuilder builder = new StringBuilder();
using (TextWriter writer = new StringWriter(builder))
{
doc.Save(writer);
}
return builder.ToString();
}
এটির সুবিধাটি রয়েছে যে কোনও ঘোষণা না থাকলে এটি ঝাঁপিয়ে পড়বে না :)
তারপরে আপনি ব্যবহার করতে পারেন:
string x = doc.ToStringWithDeclaration();
নোট করুন যে এটি utf-16 এনকোডিং হিসাবে ব্যবহার করবে, কারণ এটি অন্তর্নিহিত এনকোডিং StringWriter
। আপনি নিজেকে প্রভাবিত করতে পারেন যদিও এর একটি সাবক্লাস তৈরি করে StringWriter
, যেমন সর্বদা ইউটিএফ -8 ব্যবহার করতে ।