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

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

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

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

Ответы [ 3 ]

4 голосов
/ 05 августа 2008

Если кодировка 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'. «

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

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

2 голосов
/ 05 августа 2008

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

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

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

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

1 голос
/ 06 августа 2008

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

system("gzip foo.something")
system("gunzip foo.something.gz")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...