如何修改.xfdl文件? (更新#1)
" .XFDL"文件扩展名标识" XFDL"格式的文档文件。这些属于基于XML的文档和模板格式标准。此格式与XML文件格式完全一样,但是包含用于安全通信的加密级别。
我知道如何使用在这里找到的文件查看器来查看XFDL文件。我还可以通过执行File:Save / Save As来修改和保存这些文件。但是,我想即时修改这些文件。有什么建议?这有可能吗?
更新#1:我现在已经成功解码了.xfdl并将其解压缩到XML文件中,然后可以对其进行编辑。现在,我正在寻找一种将修改后的XML文件重新编码回base64-gzip的方法(使用Ruby或者命令行)
解决方案
回答
如果编码是base64,那么这是我在Web链接上偶然发现的解决方案:
"解码以'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",由于xfdl文件不包含文件名,因此uudeview命令会将内容解码为" UNKNOWN.001"。 '-i'选项使uudeview不交互,请删除该选项以获得更多控制。
最后一条命令将解码后的文件压缩到名为" yourform-unpacked.xfdl"的文件中。
"
这里的另一种可能的解决方案
旁注:用引号引起来的<code>块不适用于长字符串
回答
我现在唯一能想到的答案是阅读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")