Hi Christian, thank you very much! With the "archive:" prefix it works. Thank you for all the great work you guys are doing within this project. Best, Jörg -----Ursprüngliche Nachricht----- Von: Christian Grün [mailto:christian.gruen@gmail.com] Gesendet: Mittwoch, 7. August 2013 09:34 An: Jörg Beisiegel Cc: basex-talk@mailman.uni-konstanz.de Betreff: Re: [basex-talk] How do I use "archive:update" to add a new binary file to an existing archive? Hi Jörg, your query should work if you use the "archive:" prefix for your entry element: let $updated := archive:update($archive, <archive:entry>{$doc}</archive:entry>, $entry) If you don't specify on any options, you can also omit the element: let $updated := archive:update($archive, $doc, $entry) Hope this helps, Christian ___________________________ 2013/8/6 Jörg Beisiegel <Joerg.Beisiegel@translatissimo.de>:
Hello,
unfortunately I do not get the archive:update function to work. I am using BaseX 7.6.
Your sample to update text in a Word 2010 document works fine.
Creating a new archive and extracting from an archive works fine too.
When I try to update an existing archive with a new image file I get the error "element(archive:entry) or string expected, element() found.
I have modified your Word sample query as follows:
declare variable $input := "input.zip";
declare variable $output := "output.zip";
declare variable $doc := "Image.png";
declare variable $img := "new_image_in_file_system.png";
let $archive := file:read-binary($input)
let $entry := file:read-binary($img)
let $updated := archive:update($archive, <entry>{$doc}</entry>, $entry)
return file:write-binary($output, $updated)
Thank you very much for your help.
Regards,
Jörg
_______________________________________________ BaseX-Talk mailing list BaseX-Talk@mailman.uni-konstanz.de https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk