Portál AbcLinuxu, 1. května 2025 14:09
Než naimplementuju ukládání rozdílů do revizí, musím se zbavit formátu SIMPLE v datech Abíčka. Teď můžete buď formátování řídit sami (značky BR, P) nebo to nechat na systému (prázdný řádek). Druhý způsob nazývám SIMPLE formátem a při renderování jej automaticky převádím na HTML (doplněním značky P). Pominu-li neefektivnost (opakovat tuto relativně složitou operaci při každém zobrazení), obávám se implikací při ukládání revizí.
Nejspíše zbytečně, po aplikování rozdílů dostanu původní text, takže o nic nepřijdu. Ale stejně bych se rád této koule na noze zbavil. Ale jak? HTML kód by se měl nejdříve pročistit, na což existují utility jako htmllint. V javě je ale výběr složitější. Java obdoba zásadně nevydává balíčky a alternativy mě také nenadchly. Snad je NekoHTML vypadá zajímavě, akorát vyžaduje bumbrlíčka Xerces. Takže se ptám, máte někdo v Javě zkušenosti s vytvářením validního HTML?
Na závěr pár oprav: 642 (další chyby související se zavedením autorů), 443 (vytvářet prázdné diskuse, aby fungovaly nepřečtené komentáře), 631 (značka break u blogů), 12 (fronta zpráviček) a 18 (redakční systém, lepší hledání v honorářích).
Tiskni
Sdílej:
import org.cyberneko.html.parsers.SAXParser; import org.dom4j.Document; import org.dom4j.io.SAXReader; public class Main { private final SAXReader htmlReader; private final SAXParser parser = new SAXParser(); private Document document; private Main() throws SAXNotRecognizedException, SAXNotSupportedException { prepareParser(); htmlReader = new SAXReader(parser); document = htmlReader.read(… stream s HTML…); } private void prepareParser() throws SAXNotRecognizedException, SAXNotSupportedException { parser.setFeature("http://cyberneko.org/html/features/scanner/script/strip-comment-delims", true); parser.setFeature("http://cyberneko.org/html/features/scanner/style/strip-comment-delims", true); parser.setProperty("http://cyberneko.org/html/properties/names/elems", "lower"); parser.setProperty("http://cyberneko.org/html/properties/names/attrs", "lower"); parser.setProperty("http://cyberneko.org/html/properties/default-encoding", "windows-1250"); } }Nedávno jsem narazil ještě na nový projekt HtmlCleaner, zatím jsem ho nezkoušel.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.