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:

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:

sshot-1

Ähnliche Beiträge

2 Gedanken zu “Vergleich von HTML-Dateien mit Daisy Diff

  1. 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
    ContentHandler postProcess = htmlOut? filter.xsl(result, "xslfilter/htmlheader.xsl"):result;
    Please help out.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert