Braindead kuruluş XML API'sı için bir sarıcı yazıyorum. Bir dizeye dönüşmem gereken bir XDocument var. Nedeniyle kendi XML ayrıştırıcı hatta XML düğümleri arasında boşluk işleyemez böylece titiz olması nedeniyle, belge bildirimi TAM OLMALIDIR: AncakXDocument to string: Bildirimde kodlamayı nasıl hariç tutabilirsiniz?
<?xml version="1.0"?>
, XDocument.Save() metodu daima bir kodlama ekler o bildiriminde öznitelik:
<?xml version="1.0" encoding="utf-16"?>
Google ve Stack XML dize oluşturmak için en iyi yol arıyoruz harcanan geçen saat ile, yapabileceğim en iyisi:
string result = xmlStringBuilder.ToString().Replace(@"encoding=""utf-16"", string.Empty));
Ben
xdoc.Declaration = new XDeclaration("1.0", null, null);
denedim ve o XDocument ben istediğim gibi beyanı ayarı başarılı gelmez; Ancak, Save() yöntemini çağırdığımda, hangi yoldan gidersek gidelim (TextWriter kullanarak, XmlWriterSettings ekleyerek vb.), kodlama özniteliği geri döndürülür.
Bunu yapmanın daha iyi bir yolu var mı, yoksa sonsuza dek dizgenin üzerindeki yorumlarda paçavra parası olmaktan kaçınan benim kodum mu?