Apakah ada cara untuk mendapatkan pengkodean xml di Fungsi toString ()?
Contoh:
xml.Save("myfile.xml");
mengarah ke
<?xml version="1.0" encoding="utf-8"?>
<Cooperations>
<Cooperation>
<CooperationId>xxx</CooperationId>
<CooperationName>Allianz Konzern</CooperationName>
<LogicalCustomers>
Tapi
tb_output.Text = xml.toString();
mengarah ke keluaran seperti ini
<Cooperations>
<Cooperation>
<CooperationId>xxx</CooperationId>
<CooperationName>Allianz Konzern</CooperationName>
<LogicalCustomers>
...
c#
linq-to-xml
Henrik P. Hessel
sumber
sumber
XDocument.Save(TextWriter)
implementasi dan itu hanya mengabaikan pengkodean deklarasi, sebagai lawanXDocument.Save(String)
atauXDocument.Save(Stream)
implementasi. Aku bertanya-tanya mengapa ...StringWriter
, kecuali jika Anda menggunakan salah satu yang menimpaEncoding
properti. Saya punya jawaban lain tentang itu. Saya pikir Anda mengatakan itu menjatuhkan "pengkodean" seluruhnya ...Properti Deklarasi akan berisi deklarasi XML. Untuk mendapatkan deklarasi konten plus, Anda dapat melakukan hal berikut:
sumber
tb_output.Text = @"<?xml version=""1.0"" encoding=""utf-8"" ?>" + xml;
... = $"{xdoc.Declaration}{Environment.NewLine}{xdoc}";
Gunakan ini:
sumber
Saya suka ini
Silakan lihat di bawah untuk apa yang saya dapatkan di distributorInfo
sumber
Mirip dengan jawaban +1 lainnya, tetapi sedikit lebih detail tentang deklarasi, dan penggabungan yang sedikit lebih akurat.
<xml />
deklarasi harus berada di barisnya sendiri dalam format XML, jadi saya memastikan kita memiliki baris baru yang ditambahkan. CATATAN: menggunakanEnvironment.Newline
sehingga akan menghasilkan baris baru khusus platformKedua hasil tersebut menghasilkan:
sumber
Beberapa dari jawaban ini menyelesaikan permintaan poster, tetapi tampak terlalu rumit. Berikut adalah metode ekstensi sederhana yang menghindari kebutuhan akan penulis terpisah, menangani deklarasi yang hilang, dan mendukung parameter ToString SaveOptions standar.
Untuk menggunakan ekstensi, cukup ganti
xml.ToString()
denganxml.ToXmlString()
sumber
Anda juga dapat menggunakan XmlWriter dan memanggil file
metode.
sumber
sumber