Saya memiliki string XML:
<?xml version='1.0'?><response><error code='1'> Success</error></response>
Tidak ada garis antara satu elemen dengan elemen lainnya, dan karenanya sangat sulit dibaca. Saya ingin fungsi yang memformat string di atas:
<?xml version='1.0'?>
<response>
<error code='1'> Success</error>
</response>
Tanpa harus menggunakan fungsi format secara manual, apakah ada .Net library atau potongan kode yang bisa saya gunakan begitu saja?
c#
xml
formatting
Graviton
sumber
sumber
XmlDocument
mana yang akan mendiskualifikasi jawaban dengan suara tertinggi pada pertanyaan ini.Jawaban:
Gunakan
XmlTextWriter
...sumber
Anda harus mem-parsing kontennya ... Saya menemukan menggunakan LINQ cara paling mudah untuk melakukannya. Sekali lagi, semuanya tergantung pada skenario persis Anda. Berikut adalah contoh yang berfungsi menggunakan LINQ untuk memformat string XML input.
[menggunakan pernyataan dikomitmenkan untuk singkatnya]
sumber
doc.Declaration.ToString() + doc.ToString()
atau dengan menggunakandoc.Save
alih-alihdoc.ToString
. Lihat tautan ini untuk lebih jelasnya.Yang ini, dari kristopherjohnson lebih baik:
Lebih sedikit baris kode
sumber
<?xml version="1.0" encoding="UTF-8" ?>
garis di atas) dan itu bekerja dengan baik.Solusi sederhana yang bekerja untuk saya:
sumber
Periksa tautan berikut:
Cara mencetak XML dengan cantik(Sayangnya, tautan itu sekarang mengembalikan 404 :()Metode dalam tautan menggunakan string XML sebagai argumen dan mengembalikan string XML yang terbentuk dengan baik.
Saya baru saja menyalin kode sampel dari tautan untuk membuat jawaban ini lebih komprehensif dan nyaman.
sumber
<?xml...?>
garis. Jawaban ini mendapatkan apa yang semula saya pikirkan. Satu-satunya negatif adalah bahwa saya lebih suka tab daripada ruang yang digunakan secara asli. Saya mengaturIndentation = 1
danIndentChar = '\t'
mendapatkan apa yang saya inginkan.(this String XML)
karya hebat.Saya mencoba:
itu berfungsi dengan baik seperti yang diharapkan.
sumber
.NET 2.0 mengabaikan pemecahan nama, dan dengan pembuangan sumber daya yang tepat, indentasi, spasi-putih dan pengkodean khusus :
Pemakaian:
sumber
jika Anda memuat XMLDoc saya cukup yakin fungsi .ToString () memiliki kelebihan untuk ini.
Tetapi apakah ini untuk debugging? Alasannya dikirim seperti itu adalah untuk mengambil lebih sedikit ruang (yaitu menghapus spasi yang tidak perlu dari XML).
sumber
Output Pretty XML yang dapat disesuaikan dengan deklarasi XML UTF-8
Definisi kelas berikut memberikan metode sederhana untuk mengonversi string XML input menjadi output XML yang diformat dengan deklarasi xml sebagai UTF-8. Ini mendukung semua opsi konfigurasi yang ditawarkan oleh kelas XmlWriterSettings .
Kemungkinan untuk peningkatan lebih lanjut: -
GetPrettyXml(XmlDocument doc, XmlWriterSettings settings)
dapat dibuat yang memungkinkan pemanggil untuk menyesuaikan output.GetPrettyXml(String rawXml)
dapat ditambahkan yang mendukung parsing teks mentah, daripada meminta klien menggunakan XmlDocument. Dalam kasus saya, saya perlu memanipulasi XML menggunakan XmlDocument, jadi saya tidak menambahkan ini.Pemakaian:
sumber