Saya memiliki potongan Html yang disimpan dalam sebuah tabel. Bukan seluruh halaman, tanpa tag atau sejenisnya, hanya pemformatan dasar.
Saya ingin menampilkan Html itu sebagai teks saja, tanpa pemformatan , pada halaman tertentu (sebenarnya hanya 30 - 50 karakter pertama tetapi itu bagian yang mudah).
Bagaimana cara menempatkan "teks" di dalam Html itu ke dalam string sebagai teks lurus?
Jadi potongan kode ini.
<b>Hello World.</b><br/><p><i>Is there anyone out there?</i><p>
Menjadi:
Halo Dunia. Apa ada orang di luar sana?
Jawaban:
Jika Anda berbicara tentang penghapusan tag, ini relatif mudah jika Anda tidak perlu mengkhawatirkan hal-hal seperti
<script>
tag. Jika yang perlu Anda lakukan hanyalah menampilkan teks tanpa tag, Anda dapat melakukannya dengan ekspresi reguler:Jika Anda benar-benar harus khawatir tentang
<script>
tag dan sejenisnya maka Anda akan memerlukan sesuatu yang sedikit lebih kuat daripada ekspresi reguler karena Anda perlu melacak status, sesuatu yang lebih seperti Tata Bahasa Bebas Konteks (CFG). Meskipun Anda mungkin bisa melakukannya dengan pencocokan 'Kiri ke Kanan' atau tidak serakah.Jika Anda dapat menggunakan ekspresi reguler, ada banyak halaman web di luar sana dengan info yang bagus:
Jika Anda memerlukan perilaku CFG yang lebih kompleks, saya sarankan untuk menggunakan alat pihak ketiga, sayangnya saya tidak tahu alat yang bagus untuk direkomendasikan.
sumber
HtmlAgilityPack sumber terbuka dan gratis di salah satu contohnya memiliki metode yang mengonversi dari HTML menjadi teks biasa.
Beri makan dengan string HTML seperti
Dan Anda akan mendapatkan hasil teks biasa seperti:
sumber
script
dan memberistyle
tag dan menulis teks bagian dalam elemen lain ke dalam string keluaran. Saya ragu itu lulus banyak pengujian dengan input dunia nyata.Saya tidak dapat menggunakan HtmlAgilityPack, jadi saya menulis solusi terbaik kedua untuk diri saya sendiri
sumber
HTTPUtility.HTMLEncode()
dimaksudkan untuk menangani pengkodean tag HTML sebagai string. Ini menangani semua pekerjaan berat untuk Anda. Dari Dokumentasi MSDN :HTTPUtility.HTMLEncode()
metode, dirinci di sini :Pemakaian:
sumber
Untuk menambah jawaban vfilby, Anda bisa melakukan penggantian RegEx dalam kode Anda; tidak diperlukan kelas baru. Dalam kasus pemula lain seperti saya bingung dengan pertanyaan ini.
Kemudian...
sumber
Proses Tiga Langkah untuk mengubah HTML menjadi Teks Biasa
Pertama Anda Perlu Menginstal Paket Nuget Untuk HtmlAgilityPack Kedua Buat Kelas Ini
Dengan menggunakan kelas di atas dengan mengacu pada jawaban Judah Himango
Ketiga, Anda perlu membuat Objek kelas di atas dan Gunakan
ConvertHtml(HTMLContent)
Metode untuk mengubah HTML menjadi Teks Biasa daripadaConvertToPlainText(string html);
sumber
Ini memiliki batasan yaitu tidak menciutkan ruang putih sebaris yang panjang, tetapi jelas portabel dan menghormati tata letak seperti penjelajah web.
sumber
Tidak ada metode dengan nama 'ConvertToPlainText' di HtmlAgilityPack tetapi Anda dapat mengonversi string html ke string CLEAR dengan:
Itu berhasil untuk saya. TAPI SAYA TIDAK MENEMUKAN METODE DENGAN NAMA 'ConvertToPlainText' IN 'HtmlAgilityPack'.
sumber
Saya pikir cara termudah adalah membuat metode ekstensi 'string' (berdasarkan apa yang disarankan pengguna Richard):
Kemudian gunakan saja metode ekstensi ini pada variabel 'string' apa pun di program Anda:
Saya menggunakan metode ekstensi ini untuk mengonversi komentar berformat html menjadi teks biasa sehingga akan ditampilkan dengan benar pada laporan kristal, dan berfungsi sempurna!
sumber
Cara paling sederhana yang saya temukan:
Kelas HtmlFilter terletak di Microsoft.TeamFoundation.WorkItemTracking.Controls.dll
Dll dapat ditemukan di folder seperti ini:% ProgramFiles% \ Common Files \ microsoft shared \ Team Foundation Server \ 14.0 \
Di VS 2015, dll juga memerlukan referensi ke Microsoft.TeamFoundation.WorkItemTracking.Common.dll, yang terletak di folder yang sama.
sumber
Jika Anda memiliki data yang memiliki tag HTML dan Anda ingin menampilkannya agar seseorang dapat MELIHAT tag tersebut, gunakan HttpServerUtility :: HtmlEncode.
Jika Anda memiliki data yang memiliki tag HTML di dalamnya dan Anda ingin pengguna melihat tag tersebut dirender, tampilkan teks apa adanya. Jika teks mewakili seluruh halaman web, gunakan IFRAME untuk itu.
Jika Anda memiliki data yang memiliki tag HTML dan Anda ingin menghapus tag dan hanya menampilkan teks yang tidak diformat, gunakan ekspresi reguler.
sumber
Saya telah menghadapi masalah serupa dan menemukan solusi terbaik. Kode di bawah ini berfungsi sempurna untuk saya.
}
Karakter melarikan diri seperti \ n dan \ r harus dihapus terlebih dahulu karena menyebabkan ekspresi reguler berhenti berfungsi seperti yang diharapkan.
Selain itu, untuk membuat string hasil ditampilkan dengan benar di kotak teks, seseorang mungkin perlu membaginya dan menyetel properti Garis kotak teks alih-alih menetapkan ke properti Teks.
this.txtResult.Lines = StripHTML (this.txtSource.Text) .Split ("\ r" .ToCharArray ());
Sumber: https://www.codeproject.com/Articles/11902/Convert-HTML-to-Plain-Text-2
sumber
Tergantung pada apa yang Anda maksud dengan "html". Kasus yang paling kompleks adalah halaman web lengkap. Itu juga yang paling mudah ditangani, karena Anda dapat menggunakan browser web mode teks. Lihat artikel Wikipedia yang mencantumkan browser web, termasuk browser mode teks. Lynx mungkin yang paling terkenal, tetapi salah satu dari yang lain mungkin lebih baik untuk kebutuhan Anda.
sumber
Inilah solusi saya:
Contoh:
sumber
Saya memiliki pertanyaan yang sama, hanya html saya yang memiliki tata letak sederhana yang telah diketahui sebelumnya, seperti:
Jadi saya akhirnya menggunakan kode sederhana seperti itu:
Output mana:
sumber
Tidak menulis tetapi menggunakan:
sumber
Saya pikir jawabannya sederhana:
sumber
Bagi siapa saja yang mencari solusi tepat untuk pertanyaan OP untuk singkatan tekstual dari dokumen html tertentu, tanpa baris baru dan tag HTML, temukan solusi di bawah ini.
Seperti setiap solusi yang diusulkan, ada beberapa asumsi dengan kode di bawah ini:
he<span>ll</span>o
harus dikeluarkanhello
. Daftar tag sebaris: https://www.w3schools.com/htmL/html_blocks.aspMempertimbangkan hal di atas, ekstensi string berikut dengan ekspresi reguler terkompilasi akan menghasilkan teks biasa yang diharapkan terkait dengan karakter yang diloloskan html dan null pada masukan nol.
sumber
publik string statis StripTags2 (string html) {kembali html.Replace ("<", "<"). Replace (">", ">"); }
Dengan ini, Anda melepaskan semua "<" dan ">" dalam sebuah string. Apa ini yang kau inginkan?
sumber