Christian Seiler: xsl:result-document auf fuer nicht xml dateien

Beitrag lesen

Hallo,

meines Wissens kann das Saxon nicht direkt - was allerdings möglich wäre, wäre das einfach in Java zu implementieren und mit dem XSLT dann darauf zuzugreifen:

package sonstwas;  
  
import net.sf.saxon.trans.XPathException;  
  
public class FileUtils {  
  public static boolean copyFile (String from, String to) throws XPathException {  
    // Hier die Dateien kopieren und z.B. true zurückgeben  
    // Bei Bedarf einfch eine new XPathException (message) werfen.  
  }  
}

Im XSLT kannst Du dann machen:

<xsl:stylesheet ... xmlns:fileutils="java:sonstwas.FileUtils" exclude-result-prefixes="fileutils">  
  
...  
  
<xsl:if test="fileutils.copyFile ($von, $nach)">  
  <!-- erfolgreich kopiert -->  
</xsl:if>

Beachte jedoch, dass XSLT eine funktionale Sprache ist, d.h. die Aufrufreihenfolge der Java-Methode nicht garantiert werden kann. Zudem muss die Klasse im Classpath liegen, damit das funktioniert.

Viele Grüße,
Christian