Autor Zpráva
blizzboz
Profil
Pracujem na aplikácii ktorá sťahuje html súbory a z nich vyberá niektoré dáta a tie potom spracováva. Potreboval by som k tomu html parser, niečo ako MSXML, doteraz som používal MSHTML ale ten parser je pomalý, zataralý a niektoré stránky odmieta spracovať. Napr. u http://zive.cz mi to vyhodí hlášku: Táto stránka predstavuje bližšie neurčené riziko zabezpečenia. neviete o nejakom lepšom HTML parsery pre .NET ?
martindeveloper
Profil
Tohle vypadá nadějně http://www.majestic12.co.uk/projects/html_parser.php
Ale podle mě, by nebyl zas takový problém si napsat vlastní a ještě si k tomu udělat hezký LINQ přístup :)

EDIT: Tak jak koukám, tak to pěkně dlouho neaktualizovali a je to psané pro .NET 2.0 a 1.1. Ale povedlo se mi to zkompilovat v VS 2010 pouze se 3 varováními takže by to mělo fungovat.
blizzboz
Profil
martindeveloper:
našiel som ešte elegantnejšie riešenie priamo od MS: SgmlReader

Rozšíril som si triedu XmlDocument vlastnou extension metódou:

public static void LoadHtml(this XmlDocument document, string html)
{
    Sgml.SgmlReader sgmlReader = new Sgml.SgmlReader();
    sgmlReader.DocType = "HTML";
    sgmlReader.WhitespaceHandling = WhitespaceHandling.All;
    sgmlReader.CaseFolding = Sgml.CaseFolding.ToLower;
    sgmlReader.InputStream = new StringReader(html);
    document.PreserveWhitespace = true;
    document.XmlResolver = null;
    document.Load(sgmlReader);
}

ktorá mi umožňuje otvoriť hociaký HTML dokument a pracovať s nim ako s XMLkom

Vaše odpověď

Mohlo by se hodit

Zvažte, zda se neobrátit na specializované fórum, toto se zabývá především webovou problematikou.

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: