Co znamena "velmi rozhozeny"? S pozdravem Ondřej Nekola
2011/2/18 Dušan Rychnovský <[email protected]>: > Dobrý den. > > Vytvářím program (JSE), který zpracovává HTML stránky. Stránku vždy stáhnu z > webu na disk, vybuduju nad ní DOM Tree a pomocí něj pak provádím různé > úpravy. > > Pro stavbu DOM používám knihovnu "HTML Parser" > (http://htmlparser.sourceforge.net/), a to z několika důvodů. > > 1. Potřebuju zpracovávat běžné webové stránky (tj. stránky s chybami oproti > XML standardům). > > 2. Potřebuju je zpracovávat rychle. > > 3. Změny v HTML kódu chci uchovávat i mezi spuštěními programu - potřebuju > DOM serializovat. > > Zjistil jsem, že "HTML Parser" při vytváření stromu nekopíruje textové > elementy do paměti, ale nějakým způsobem se zřejmě odkazuje na části > zparsovaného HTML souboru. > > Proto pokaždé, když provedu změnu v HTML kódu, uložím na disk (serializuju) > změněný DOM a přepíšu parsovaný HTML soubor pomocí metody toHtml() třídy > NodeList (aby si vždy DOM a parsovaná stránka odpovídaly). > > Tento postup funguje v pořádku až do té doby, než program vypnu a znovu > zapnu (tj. zřejmě dokud neproběhne deserializace DOMu). Potom dostávám při > prvním volání toHtml() dokument velmi rozhozený. > > Kontroloval jsem několikrát, jestli se někde v průběhu nedostane dvojice DOM > - parsovaný soubor do nekonzistentního stavu, ale chybu jsem nenašel. > > Takže přemýšlím, jestli vůbec "HTML Parser" takovéto zacházení podporuje > (dokumentace je dost chudá). > > Máte někdo podobné zkušenosti s tímto parserem? Nebo víte o vhodnějším > parseru pro moje účely (vygooglil jsem i různé jiné parsery, ale vždy se mi > z nějakého důvodu zdály nevhodné)? > > Díky za pomoc, > Dušan Rychnovský > >
