http://onion.net/2010/compression/zip

extractEntry (entry : nodeset) : void

Die Methode »extractEntry()« wird benötigt, um einen Eintrag aus einem .zip-Archiv extrahieren zu können. »extractEntry()« findet in binären Methoden Anwendung, damit der extrahierte Inhalt direkt als binäre Datei im Rendering verwendet werden kann.

Parameter

Die Methode ist nicht alleine zu verwenden. Vielmehr stellt sie eine Ergänzung zur Methode »extract()« dar. Denn ein <entry>-Element, welches in dem Rückgabe-XML dieser Methode selektiert wird, muss als Parameter der Methode »extractEntry()« übergeben werden.

Beispiel

<xsl:stylesheet xmlns:b="http://onionworks.net/2004/renderengine/binary" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:zip="http://onion.net/2010/compression/zip" xmlns:onion="http://onionworks.net/2004/data" version="1.0">
<xsl:template match="/">
<xsl:variable name="entry" select="zip:extract(zipFile, true())/zipArchive/entry[@name = 'images/logo.jpg']" />
<xsl:value-of select="zip:extractEntry($entry)" />
<b:output mimeType="image/jpeg">
<b:webResponse expires="60" />
</b:output>
</xsl:template>
</xsl:stylesheet>
Verwendung der Methode »extractEntry()«

Zunächst wird mit Hilfe der Methode »extract()« die Liste der Inhalte der .zip-Datei ermittelt und in der Variablen »entry« das Nodeset für den Inhalt "logo.jpg" im Ordner "images" abgespeichert.

Dieser XML-Schnipsel wird dann anschließend mit der Methode »extractEntry()« in den Binärstrom geschrieben.

Üblicherweise würde man den Pfad der Datei als Parameter entgegennehmen und den mimeType für den binären Ausgabestrom anhand der Dateierweiterung dynamisch ermitteln.

Siehe auch