Pokud někdo do stránky napíše <ctrl>+<c> rovnou a místo znaků <>, které nemají mít tentokrát funkci ohraničení tagu, nepoužije HTML entity < a >, pak stránka není HTML validní. Obecně můžete použít regexpy k vyházení HTML značek, ale narazíte na několik problémů, které vá jednoduchý regexp neudělá a celé se to výrazně zkomplikuje. - vystříhání komentářů - vyházení obsahů značek script, style, title atd. (skripty a styly určitě uživatel vidět nechce) - a pár dalších nechutností Pokud máte zaručeno, že stránka nebude mít syntaktické chyby, což většinou zaručit nejde, máte dost velký problém, protože regexp se na tomhle rozbije a nenamatchuje to, co potřebujete. Dalším problémem je výkon, regexpy jsou už ze svého principu pomalé. Pokud potřebujete parsovat jednoduché stránky a máte jistotu, že nebudou obsahovat chyby, pak použijte regexpy. Pokud děláte nějaký program stahující stránky z webu a vyhledávající v nich nějaké informace nebo něco podobného, kam vám kdokoliv může podstrčit jakkoliv zprasené HTML, určitě doporučuji spíš použít nějakou knihovnu, např. HTMLAgilityPack. Čtení HTML funguje víceméně stejně jako práce s třídou System.Xml.XmlDocument, která se používá pro čtení XML. Prostě vám to udělá DOM strom, ve kterém se můžete hrabat. Napsat si pak převod HTML na text chce jenom trochu rozmyslet, za kterými značkami se bude zalamovat řádek (i když v původním dokumentu třeba zalomení není): <li>první</li><li>druhá</li><li>třetí</li> by se mělo převést na první
druhá
třetí atd. To už dá trochu práce, ale není to tak strašné.
|