Apakah ada cara mudah untuk menghapus semua tag HTML atau SEMUA HTML terkait dari sebuah string?
Sebagai contoh:
string title = "<b> Hulk Hogan's Celebrity Championship Wrestling <font color=\"#228b22\">[Proj # 206010]</font></b> (Reality Series, )"
Di atas benar-benar harus:
"Gulat Kejuaraan Selebriti Hulk Hogan [Proj # 206010] (Seri Realitas)"
xidel -s input -e '/'
.Jawaban:
Anda dapat menggunakan regex sederhana seperti ini:
Ketahuilah bahwa solusi ini memiliki kekurangannya sendiri. Lihat Menghapus tag HTML di String untuk informasi lebih lanjut (terutama komentar @mehaase)
Solusi lain adalah menggunakan HTML Agility Pack .
Anda dapat menemukan contoh menggunakan pustaka di sini: Paket agility HTML - menghapus tag yang tidak diinginkan tanpa menghapus konten?
sumber
< 10 <b>
dan</b>
keduanya dilucuti.Anda dapat mengurai string menggunakan paket Agility Html dan mendapatkan InnerText.
sumber
InnerText
solusinya karena menghapus semua tag. Tapi ... meninggalkan
dan juga tag komentar seperti<!-- xxx -->
seperti yang ada di sekitarnyav:shapetype
,v:shape
atauv:imagedata
dengan[if gte vml 1]
atau[if !vml]
adalah entitas html, bukan tag, jadi solusi untuk menghapusnyaresult = WebUtility.HtmlDecode(result);
dan menghapus node komentar, menggunakan Paket Agility Html:htmlDoc.DocumentNode.SelectNodes("//comment()")?.ForEach(c=> c.Remove());
sebelum melakukanresult = htmlDoc.DocumentNode.InnerText;
Anda dapat menggunakan kode di bawah ini pada string Anda dan Anda akan mendapatkan string lengkap tanpa bagian html.
sumber