Vergleich von HTML-Dateien mit Daisy Diff
In meiner Seminarverwaltungssoftware können Trainer die Seminarbeschreibungen ändern. Natürlich möchte ich mitbekommen, welche Stellen geändert wurden und das am Liebsten hübsches aufbereitet. Da bin ich auf http://code.google.com/p/daisydiff/ gestoßen. Man kann entweder über die Kommandozeile arbeiten oder mit einer Hilfsklasse, wobei zwei Klassen einen ersten Anhaltspunkt für die API geben:
- http://code.google.com/p/daisydiff/source/browse/trunk/daisydiff/src/java/org/outerj/daisy/diff/Main.java
- http://code.google.com/p/daisydiff/source/browse/trunk/daisydiff/src/java/org/outerj/daisy/diff/DaisyDiff.java
Ein kleines Beispiel soll das Diff in HTML-Form in den Temp-Ordner C:\Users\CHRIST~1\AppData\Local\Temp\ schreiben:
package com.tutego.traida;
import java.awt.Desktop;
import java.io.File;
import java.io.FileWriter;
import org.outerj.daisy.diff.Main;
public class DaisyDiffDemo
{
public static void main( String[] args ) throws Exception
{
String html1 = "Eine zwei Polizei";
String html2 = "Eins zwei drei Polizei";
File fileIn = File.createTempFile( "daisyin", ".html" );
File fileOut = File.createTempFile( "daisyout", ".html" );
File fileDiff = File.createTempFile( "daisydiff", ".html" );
new FileWriter( fileIn ).append( html1 ).close();
new FileWriter( fileOut ).append( html2 ).close();
String[] daisyDiffArgs = {
fileIn.getAbsolutePath(), fileOut.getAbsolutePath(), „–file=“+fileDiff.getAbsolutePath()
};
Main.main( daisyDiffArgs );
fileIn.deleteOnExit();
fileOut.deleteOnExit();
Desktop.getDesktop().open( fileDiff );
}
}
Das generierte HTML greift auf allerlei Zeugs zurück. Damit die HTML-Datei gut angezeigt wird, einfach aus dem Zip die Order css, images und js in das temp-Verzeichnis C:\Users\CHRIST~1\AppData\Local\Temp kopieren. Dann sieht das Ergebnis so aus:

2 Kommentare
Tool to compare HTML files and produce report in HTML or XML format - Tutorial Guruji ·
\[…\] (see DaisyDiff examples) or java api. See Main Class and DaisyDiff Class to get you going. Here is a blogpost (in german) with some snippet generating a html \[…\]
Vaibhav ·
Hello. This looks good but when I tried the code, I am continuously getting the following error and unable to understand why? Please help: ``` java.lang.NullPointerException at org.apache.xalan.processor.TransformerFactoryImpl.newTransformerHandler(TransformerFactoryImpl.java:701) at org.outerj.daisy.diff.XslFilter.xsl(Unknown Source) at com.PB.automation.Main.main(Main.java:124) ``` This line gives the error: ```java ContentHandler postProcess = htmlOut ? filter.xsl( result, "xslfilter/htmlheader.xsl" ) : result; ``` Please help out.
Die bisherigen Kommentare wurden aus WordPress übernommen. Neue Kommentare sind derzeit geschlossen.