导入 XML 数据

FileMaker Pro 可以将 XML 数据导入到现有 FileMaker Pro 文件中,或将 XML 数据转换为新的 FileMaker Pro 文件。

XML 可以是文件,也可以是发送到 Web 服务器的 HTTP 请求的结果。例如,可以建立一个“订单”数据库,以 HTPP 请求的形式向软件包传递服务公司发送跟踪编号,该公司的 Web 服务器将返回 XML 格式的最新软件包跟踪信息,并随即导入到“订单”数据库中。

您导入的 XML 必须符合 FileMaker FMPXMLRESULT 文档类型定义 (DTD)。如果 XML 采用其他格式,则在导入过程中可以应用可扩展样式表语言 (XSLT) 样式表,以便对 XML 进行转换使之符合 FMPXMLRESULT 语法。请参阅XML 格式

要导入 XML:

  1. 首先执行的操作取决于是要将 XML 导入到现有的 FileMaker Pro 文件还是将 XML 转换为新的 FileMaker Pro 文件。
  2. 要导入 XML

    请执行此操作

    导入到现有 FileMaker Pro 文件

    继续执行步骤 2

    通过将 XML 转换为新的 FileMaker Pro 文件

    跳至步骤 8

  3. 如果您要更新匹配记录或替换现有记录,请创建目标文件的备份副本。

    重要事项  更新匹配记录或替换现有记录会改写目标文件中的数据,并且无法撤消。要保护您的数据,请选择“文件”菜单 >“另存为”以创建目标 FileMaker Pro 文件的备份副本。只能对本地文件(位于您计算机上的文件)执行此操作。请确保您了解更新或替换记录的工作方式。请参阅将数据导入 FileMaker Pro

  4. 在 FileMaker Pro 中,打开目标文件。
  5. 如果目标文件包含多个表,请使用“布局”弹出菜单来显示一个布局,该布局中显示数据导入目标表中的记录。
  6. 如果要更新匹配记录或替换现有记录,请在导入前执行以下操作。(如果要添加新记录,请跳到下一步。)
    • 如果要更新匹配记录,请确保搜索结果仅包含要更新的记录。即使匹配字段的数据相匹配,搜索结果外的记录也不会被更新。
    • 如果要替换文件中的现有记录,请确保搜索结果中只包含要更改的记录。如有必要,请对记录进行排序,以便源文件中的正确记录替换目标文件中每条记录的数据。
  7. 选择“文件”菜单 >“导入记录”>“XML 数据源”。

    随即出现“指定 XML 和 XSL 选项”对话框。

  8. 跳至步骤 10

    如果要将 XML 转换为新的 FileMaker Pro 文件,则只应按照步骤 89 操作。

  9. 选择“文件”菜单 >“打开”。
  10. 在“打开文件”对话框中,对于“文件类型”(Windows) 或“显示”(macOS),选择“XML 数据源”。

    随即出现“指定 XML 和 XSL 选项”对话框。

  11. 对于“指定 XML 数据源”,请选择要导入的 XML 数据源。

    XML 源可以是文件,也可以是 HTTP 请求的结果。

  12. 要在导入前对 XML 应用 XSLT 样式表,请选择“使用 XSL 样式表”并指定 XSLT 样式表的数据源。

    如果要导入的 XML 不符合 FMPXMLRESULT DTD,则必须应用 XSLT 样式表,以将此 XML 转换为正确的语法。XSLT 源可以是文件,也可以是 HTTP 请求的结果。

  13. 单击“继续”。

    使用基于 Xerces 的 XML 分析器和基于 Xalan 的 XSLT 处理器,FileMaker Pro 会应用 XSLT 样式表(如果已指定一个)来转换 XML 数据。如果出现错误消息,请纠正此错误并再次尝试导入。

  14. 选择要执行的导入操作,然后将目标文件中的字段映射到您要从源文件导入的数据。(请参阅在导入过程中设置导入操作和映射字段。) 选择对话框中的选项,然后单击“导入”。

    如果您要将 XML 转换为新 FileMaker Pro 文件,为新文件键入名称,选择一个位置,然后单击“保存”。

注释 

  • 有关格式正确的 XML 的要求方面的详细信息,请参阅 XML 规范,网址为 www.w3.org/XML/
  • FileMaker Pro 使用 Xerces-C++ XML 分析器,该分析器支持采用下列字符编码的 XML 数据:
    • ASCII
    • UTF-8
    • UTF-16 (Big/Small Endian)
    • UCS4 (Big/Small Endian)
    • 采用 IBM037 和 IBM1140 编码的 EBCDIC
    • ISO-8859-1 (Latin1)
    • Windows-1252

    尽管 Windows-1252 是 Windows 的默认字符编码,但能够识别该字符编码的其他 XML 处理工具并不多。如果使用基于 Windows 的编辑工具生成 XML,请检查 encoding="..." 声明以查看它所生成的字符集。请参阅 Apache Web 网站上的 Xerces C++ FAQ,网址为 xerces.apache.org/xerces-c/

  • 导入记录脚本步骤中,当您将 XML 数据指定为数据源时,可通过两种方式指定 XML 数据和 XSL 样式表的路径:
    • 对于“文件”,路径必须是 FileMaker 格式(参阅创建文件路径)。
    • 对于“计算”,路径必须是操作系统格式的完整路径。例如:

      Windows: driveletter:\directoryName\fileName

      macOS: /directoryName/fileName

      如果正提供跨平台定制化 App,可以使用 Get (系统平台)函数确定当前平台,然后针对每种平台使用正确的格式。