xdmp:zip-get( $zipfile as binary(), $name as xs:string, [$options as (element()|map:map)?] ) as node()+
Get a named file from a zip document. Unzips and returns the file in
memory as a document node (for XML and JSON formats), a text node (for text formats),
or a binary node (for binary).
The format is determined either
by the mimetype from the file name or by the format
option.
Parameters | |
---|---|
zipfile | The zip file. |
name | The path to the zip file as shown in the zip manifest. |
options |
The options node
for getting this zip file.
The default value is (). The node for the xdmp:zip-get
options must be in the xdmp:zip-get namespace.
The
|
The name of the document you are extracting will determine the default
format in which the document is extracted, based on the mimetype settings.
For example, if you are extracting a document with the name
myDocument.xmlfile
, it will by default extract that document
as a text document (because it is an unknown mimetype, and unknown
mimetypes default to text format). If you know this is an XML document,
then specify a format
of xml
in the
options
node
(see the second example below).
xdmp:zip-get(doc("/zip/tmp.zip"), "files/myxmlfile.xml") => the "files/myxmlfile.xml" node from the "/zip/tmp.zip" zip file
xdmp:zip-get(doc("/zip/tmp.zip"), "myDocument.xmlfile", <options xmlns="xdmp:zip-get"> <format>xml</format> </options>) => the "myDocument.xmlfile" node from the "/zip/tmp.zip" zip file, as an XML document
(: unzip all of the files in the zip archive :) xquery version "1.0-ml"; declare namespace zip="xdmp:zip"; for $x in xdmp:zip-manifest(doc("/zip/tmp.zip"))//zip:part/text() return xdmp:zip-get(doc("/zip/tmp.zip"), $x) => a sequence of all of the unzipped nodes in the "/zip/tmp.zip" zip file
Stack Overflow: Get the most useful answers to questions from the MarkLogic community, or ask your own question.