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

Translate

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

我知道如何使用找到的文件查看器查看XFDL文件这里。我还可以通过执行File:Save / Save As来修改和保存这些文件。但是,我想即时修改这些文件。有什么建议?这有可能吗?

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

This question and all comments follow the "Attribution Required."

所有的回答

Translate

如果编码是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”,由于xfdl文件不包含文件名,因此uudeview命令会将内容解码为“ UNKNOWN.001”。 '-i'选项使uudeview不交互,请删除该选项以获得更多控制。

最后一个命令将解码后的文件压缩到名为“ yourform-unpacked.xfdl”的文件中。 ”

另一个可能的解决方案-这里

旁注:用引号引起来的<code>块不适用于长字符串

来源
Translate

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

尽管我想为您提供帮助,但我不是这方面的专家,所以您将不得不等待其他知识渊博的人来这里为您提供帮助。

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

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

来源
Translate

您不必离开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")
来源