Ich habe HTML Tidy in meine Anwendung eingebettet, um eingehende HTML zu bereinigen. Aber Tidy hat eine Menge Bugs und das Reparieren direkt in der Quelle ist mein schlimmster Albtraum. Tidy Quellcode ist ein unleserlicher Abscheulichkeit. Thousand + Line-Funktionen, schlechte Benennung von Variablen, Spaghetti-Code usw. Es ist wirklich schrecklich.Gibt es eine Alternative zu HTML Tidy?
Schlimmer noch, offizielle Entwicklung seems to have ceased. In den letzten 12 Monaten gab es drei Schreibvorgänge in das offizielle CVS Repo. Aber es ist tot und begraben für viel länger als das ...
Also ich bin auf der Suche nach einer OSS C oder C++ - Anwendung/Bibliothek, die tun kann, was Tidy kann (wenn es sich anfühlt): Fix schlechte HTML-Markup und wandle es in gültiges XHTML um (das ist der Teil, an dem ich interessiert bin). Und ich meine alle Arten von schlechtem Markup.
Gibt es so etwas da draußen?
EDIT: Ich brauche es sowohl für die Manipulationen an der DOM-Struktur von einem XML-Handling-Tool und für die allgemeine Einhaltung der XHTML-Spezifikation. Meine App muss HTML von Benutzern akzeptieren (was oft in vielerlei Hinsicht ungültig ist) und gültiges XHTML ausgeben. Es muss in der Lage sein, sogar HTML zu verarbeiten, das normalerweise nicht in einem Browser angezeigt wird, weil der Benutzer es von Hand bearbeitet und anschließend nicht überprüft hat.
Ein Drop-In-Ersatz für Tidys fehlerkorrigierenden Parser ... der nicht saugt. Es macht mir nichts aus, wenn die Quelle lesbar ist und ich Probleme selbst beheben kann, oder wenn es aktive Entwickler gibt, die Bugfixes rechtzeitig zur Verfügung stellen.
Ich weiß nicht, ob das für Sie nützlich ist, aber es gibt eine Java-Bibliothek namens TagSoup (http: //home.ccil.org/~ cowan/XML/tagsoup /), die anscheinend ein paar C++ - Ports hat, vielleicht, außer dass man nicht frei ist und ich bin mir nicht sicher, ob das andere gepflegt wird. Es erzeugt einen Strom von SAX-Ereignissen, aber diese in eine XML-Ausgabe umzuwandeln, sollte nur darauf beruhen, das richtige Rohr an der Düse anzubringen. Habe es aber nie selbst benutzt. –