Как я могу изменить.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 будет декодировать содержимое как " неизвестно.001', так как файл xfdl не содержит имени файла. Параметр '-я' делает uudeview выступает uninteractive, удалить эту опцию для большего контроля.

последняя команда gunzips декодированный файл в файл с именем " yourform-распакован.xfdl'. "

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

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


единственный ответ, который я могу придумать прямо сейчас, - прочитайте руководство для 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 с помощью ядра#system:

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