Как я могу изменить файлы .xfdl? (Обновление №1)
Расширение файла .XFDL
идентифицирует файлы XFDL
Formatted Document. Они относятся к стандарту XML и стандарту форматирования шаблонов. Этот формат в точности похож на формат файла XML, однако он содержит уровень шифрования для использования в защищенной связи.
Я знаю, как просматривать файлы XFDL с помощью средства просмотра файлов. Я нашел здесь. Я также могу изменить и сохранить эти файлы, выполнив File: Save/Save As. Однако я бы хотел изменить эти файлы на лету. Какие-либо предложения? Возможно ли это?
Обновление №1: теперь я успешно декодировал и распаковал a .XFDL
в XML файл, который затем могу редактировать. Теперь я ищу способ перекодировать измененный файл XML обратно в base64-gzip (используя Ruby или командную строку)
Ответы
Ответ 1
Если кодировка 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> не работает для длинных строк кода
Ответ 2
Единственный ответ, о котором я могу сейчас подумать, - прочитать руководство для uudeview.
Насколько я хотел бы вам помочь, я не являюсь экспертом в этой области, поэтому вам придется подождать, пока кто-нибудь более осведомлен, чтобы спуститься сюда и помочь вам.
Между тем я могу дать вам ссылки на некоторые документы, которые могут вам помочь:
Извините, если это вам не поможет.
Ответ 3
Вам не нужно выбраться из 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")