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

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

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

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

4.08.2008 21:42:37
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 неинтерактивным, удалите этот параметр для большего контроля.

Последняя команда заархивирует декодированный файл в файл с именем 'yourform-unpacked.xfdl'. "

Другое возможное решение - здесь

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

4
4.08.2008 22:02:35
Забавно, что даже через 6 лет я нахожу это на SO, и это сделает мою жизнь намного проще.
Deryck 13.12.2014 01:34:21

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

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

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

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

2
27.01.2013 11:57:36

Вам не нужно выходить из 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")
1
7.02.2016 01:01:35