如何修改.xfdl文件? (更新#1)

.XFDL文件扩展名标识XFDL格式化文档文件。 这些属于基于XML的文档和模板格式标准。 此格式与XML文件格式完全相同,但包含用于安全通信的加密级别。

我知道如何使用我在这里找到的文件查看器查看XFDL文件。 我也可以通过File:Save / Save As来修改和保存这些文件。 但是,我希望能够动态修改这些文件。 有什么建议? 这有可能吗?

更新#1:我现在已成功解码并将.xfdl为XML文件,然后我可以对其进行编辑。 现在,我正在寻找一种方法将修改后的XML文件重新编码回base64-gzip(使用Ruby或命令行)

如果编码是base64,那么这就是我在网络链接上偶然发现的解决方案:

“使用’encoding = base64’解码保存的XDFL文件。保存的文件:

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

是简单的base64编码的gzip文件。 通过首先解码然后解压缩它们,可以轻松地将它们恢复为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”的文件中。 “

另一种可能的解决方案

附注:块引用的不适用于长串代码

我现在能想到的唯一答案是 – 阅读uudeview的手册。

尽管我想帮助你,但我不是这方面的专家,所以你必须等待更多知识渊博的人来这里帮助你。

同时我可以为您提供一些可能对您有帮助的文档的链接:

  • UUDeview主页
  • 使用XDFLengine
  • 从XDFL引擎入手

对不起,如果这对你没有帮助。

你不必离开Ruby就可以做到这一点,可以使用Ruby中的Base64模块对文档进行编码,如下所示:

 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" 

你可以使用Kernel#system调用gzip / gunzip:

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