Как я могу изменить файлы .xfdl? (Обновление №1)

Расширение .XFDL файла определяет XFDL файлы форматированных документов. Они относятся к стандарту форматирования документов и шаблонов на основе XML. Этот формат точно такой же, как формат файла XML, однако содержит уровень шифрования для использования в безопасных коммуникациях.

Я знаю, как просматривать файлы XFDL с помощью программы просмотра файлов, которую я нашел здесь . Я также могу изменить и сохранить эти файлы, выполнив File: Save / Save As. Однако я бы хотел изменить эти файлы на лету. Какие-либо предложения? Это вообще возможно?

Обновление №1: теперь я успешно декодировал и разархивировал .xfdl в XML-файл, который затем могу редактировать. Теперь я ищу способ перекодировать измененный XML-файл обратно в base64-gzip (используя Ruby или командную строку).

Ответов (3)

Решение

Если кодировка - base64, то это решение, на которое я наткнулся в Интернете:

«Расшифровка файлов XDFL, сохраненных с помощью 'encoding = base64'. Файлы, сохраненные с помощью:

application/vnd.xfdl;content-encoding="base64-gzip"

представляют собой простые файлы gzip в кодировке base64. Их можно легко восстановить в XML, сначала декодировав, а затем разархивировав. В Ubuntu это можно сделать следующим образом:

sudo apt-get install uudeview
uudeview -i yourform.xfdl
gunzip -S "" < UNKNOWN.001 > yourform-unpacked.xfdl 

Первая команда установит uudeview, пакет, который, среди прочего, может декодировать base64. После установки вы можете пропустить этот шаг.

Предполагая, что ваша форма сохранена как yourform.xfdl, команда uudeview декодирует содержимое как UNKNOWN.001, поскольку файл xfdl не содержит имени файла. Опция '-i' делает uudeview не интерактивным, удалите эту опцию для большего контроля.

Последняя команда gunzip распаковывает декодированный файл в файл с именем yourform-unpacked.xfdl.

Еще одно возможное решение - здесь

Боковое примечание: блокировка в кавычках <code> не работает для длинных строк кода

Единственный ответ, который я могу придумать прямо сейчас, - прочтите руководство для uudeview.

Как бы я ни хотел вам помочь, я не являюсь экспертом в этой области, поэтому вам придется подождать, пока кто-то более знающий придет сюда и поможет вам.

А пока я могу дать вам ссылки на некоторые документы, которые могут вам помочь:

Извините, если это вам не поможет.

Для этого вам не нужно выходить из Ruby, вы можете использовать модуль Base64 в Ruby для кодирования документа следующим образом:

irb(main):005:0> require 'base64'
=> true

irb(main):007:0> Base64.encode64("Hello World")
=> "SGVsbG8gV29ybGQ=\n"

irb(main):008:0> Base64.decode64("SGVsbG8gV29ybGQ=\n")
=> "Hello World"

И вы можете вызвать gzip / gunzip, используя систему Kernel #:

system("gzip foo.something")
system("gunzip foo.something.gz")