Ho provato a trovare un codice che ho scritto per un po 'di tempo che ho usato. Ha funzionato bene. Lasciatemi delineare cosa ha fatto, e si spera che potresti duplicare il suo comportamento.
- Sostituire le immagini con testo alt o titolo.
- Sostituisci collegamenti con "testo [collegamento]"
- Sostituire elementi che generano in genere lo spazio bianco verticale. h1-h6, div, p, br, hr, ecc. (Lo so, lo so. Potrebbero trattarsi di elementi inline, ma funziona bene.)
- Elimina il resto dei tag e sostituiscilo con uno vuoto stringa.
Si potrebbe anche espandere ulteriormente questo per formattare le cose come liste ordinate e non ordinate. Dipende davvero solo da quanto lontano vorresti andare.
EDIT
Trovato il codice!
public static string Convert(string template)
{
template = Regex.Replace(template, "<img .*?alt=[\"']?([^\"']*)[\"']?.*?/?>", "$1"); /* Use image alt text. */
template = Regex.Replace(template, "<a .*?href=[\"']?([^\"']*)[\"']?.*?>(.*)</a>", "$2 [$1]"); /* Convert links to something useful */
template = Regex.Replace(template, "<(/p|/div|/h\\d|br)\\w?/?>", "\n"); /* Let's try to keep vertical whitespace intact. */
template = Regex.Replace(template, "<[A-Za-z/][^<>]*>", ""); /* Remove the rest of the tags. */
return template;
}
fonte
2010-09-28 13:44:00
Il problema che si sta andando ad avere è l'ordine viene visualizzato il testo. Il modo in cui viene definito qualcosa non è sempre correlato alla gerarchia dei markup. – AutoSponge
possibile duplicazione di [Elimina HTML da testo JavaScript] (http://stackoverflow.com/questions/822452/strip-html-from-text-javascript) – bdukes