【问题标题】:In Filemaker, is it possible to import into Container fields from XML?在 Filemaker 中,是否可以从 XML 导入容器字段?
【发布时间】:2014-10-06 10:44:33
【问题描述】:

XML FMPXMLRESULT grammar 文档指出:

XML 导出不支持导出容器字段数据。

这似乎暗示可以 import (它还指定您可以在 XML 中将字段表示为“CONTAINER”类型)。但是,我发现关于如何做到这一点的文档为零。

有可能吗?我知道有一些方法可以得到例如事后将图像文件导入 Filemaker,但我可以事先在 XML 中指定它,而无需额外的脚本或后处理导入(更不用说在 Filemaker 11 或更低版本中工作的东西)?

【问题讨论】:

  • 鉴于 XML 只包含文本,并且容器字段旨在包含图像或文件,您究竟想导入什么?
  • @michael.hor257k 导入图片,最好来自http

标签: filemaker


【解决方案1】:

您可以导入文件引用,但不能导入二进制数据。 (并且您必须在 XML 文件中将字段指定为 TEXT 类型。)例如:

<?xml version="1.0" encoding="UTF-8"?>
<FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult">
  <ERRORCODE>0</ERRORCODE>
  <PRODUCT BUILD="01-25-2011" NAME="FileMaker" 
      VERSION="ProAdvanced 11.0v3" />
  <DATABASE DATEFORMAT="M/d/yyyy" TIMEFORMAT="h:mm:ss a" 
      LAYOUT="" NAME="" RECORDS="" />
  <METADATA>
    <FIELD EMPTYOK="YES" MAXREPEAT="1" TYPE="TEXT" NAME="Path" />
  </METADATA>
  <RESULTSET FOUND="">
    <ROW>
      <COL>
        <DATA>image:test.jpg</DATA>
      </COL>
    </ROW>
  </RESULTSET>
</FMPXMLRESULT>

路径必须是 FileMaker 格式;这里我使用了与文件在同一目录中的test.jpg 的相对路径(仅适用于本地文件),但它也可以是绝对路径,例如:

imagewin:/C:/Some/Path/test.jpg

【讨论】:

  • 但是您必须将文件生成器端的字段配置为容器?还是计算出来的容器?
  • 一个容器;容器可以包含二进制数据或文本数据;后者试图解释为文件引用。但这意味着您已经配置了 FileMaker 端。如果您在 XML 中将字段类型指定为 CONTAINER,它根本不会从中导入任何数据。如果您的目标是生成 XML 并使用它在 FileMaker 中创建一个包含容器字段和数据的新表,我认为没有简单的方法可以做到这一点(可能有两个文件:一个创建字段,另一个添加引用,但即使这样需要测试)。
  • 好的,我认为这里的评论是我想要得到的答案
【解决方案2】:

您最好的选择可能是导入 Base64 编码的数据,然后使用 Base64Decode 函数对其进行解码。

【讨论】:

  • 我发现这个答案对类似的需求最有帮助,但它不符合 OP 对 FM11 兼容性的要求。
【解决方案3】:

导入图片,最好从 http

我不确定这到底是什么意思。如果您的 XML 包含指向图像的链接,那么您唯一能做的就是将链接作为文本导入。如果您使用的是版本 12 或更高版本,则可以使用 Insert From URL 脚本步骤(针对每条导入的记录)来执行此操作。

【讨论】:

  • 如果需要,我可以预先将图像卷曲到磁盘。我试图找出如何以某种方式在 XML 中指定容器字段,以避免需要在 Filemaker 中运行任何脚本。我已经更新了问题。
  • @JackJames 恐怕你还不完全清楚。容器字段可以包含对图像的引用(即路径)(仅在本地网络上!)或图像本身。如果您的 XML 文档包含图像文件的本地路径,则可以导入它,目标容器字段将显示引用的图像。 -- 不知道为什么要避免使用脚本;这就像说你只想用一只脚踢足球。
  • 如果我可以在 XML 中完成所有操作,那么数据就独立于 filemaker 文件。
  • @JackJames 数据就是数据。导入数据的过程不是数据,不能只局限于源 XML 文档。您也必须在目标 (Filemaker) 端设置导入 - 例如,选择目标表并将源内容映射到目标表字段。通常,这部分是脚本化的,任何可能需要的后处理(通常需要的)都与它一起编写脚本。 -- 无论如何,这与你原来的问题关系不大。
  • 对不起,我不同意。 xml文件可用于创建新的filemaker pro数据库,无需filemaker许可即可创建xml。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-14
相关资源
最近更新 更多