【问题标题】:How can I modify .xfdl files? (Update #1)如何修改 .xfdl 文件? (更新#1)
【发布时间】:2010-09-05 07:44:04
【问题描述】:

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

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

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

【问题讨论】:

    标签: ruby language-agnostic xfdl


    【解决方案1】:

    如果编码是 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”的文件。

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

    旁注:块引用的 不适用于长字符串

    【讨论】:

    • 有趣的是,即使在 6 年后我在 SO 上找到了这个,它会让我的生活变得更加轻松。
    【解决方案2】:

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

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

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2022-07-02
        • 2010-12-08
        • 2013-01-12
        • 2010-09-05
        • 1970-01-01
        • 1970-01-01
        • 2013-02-18
        • 2010-11-25
        • 1970-01-01
        相关资源
        最近更新 更多