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

时间:2008-08-04 21:42:38

标签: ruby language-agnostic xfdl

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

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

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

3 个答案:

答案 0 :(得分:4)

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

“使用'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”的文件中。 “

另一个可能的解决方案 - here

旁注:引用的块&lt;代码&gt;不适用于长串代码

答案 1 :(得分:2)

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

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

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

很抱歉,如果这对您没有帮助。

答案 2 :(得分:1)

你不必离开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")