使用 XSLT3 数学函数进行数据映射

XSLT3 增加了三角函数和其他高级数学函数,以及新的格式化函数,用于收集环境变量的函数,等等,从而扩展了 XSLT 和 XSLT2 的 XML 转换标准。数据分析师和其他数据专业人士可以应用 XSLT3 函数 为了解决 XML 数据映射和集成方面的难题 需要进行复杂数学计算的应用。下面我们来看一些 MapForce 的示例: 使用 XSLT3 进行数据映射 使用三角函数和其他复杂数学表达式的数学函数。

MapForce 提供内部处理引擎,这些引擎针对各种数据类型和应用进行了定制。

当您选择 XSLT3 引擎时,以下所示的函数将被添加到“函数库”窗口中,并可用于数据映射

例如,我们可以创建一个数据映射,该映射可以根据存储在 XML 文件中的输入值,生成正弦、余弦和正切值。原始数据以 CSV 文件的形式提供,我们将其导入到 XMLSpy 中,XMLSpy 是全球销量最高的 XML 编辑器 JSON 和 XML 编辑器, 用于转换为 XML 格式。

我们首先在 MapForce 中导入输入和输出文件的 XML 模式,然后连接它们的根元素。 在这一步,选择“目标驱动”的连接类型非常重要。 这样可以让我们自定义后续的每个连接。

接下来,我们将“行”元素连接起来,从库中拖入三角函数,并将源数据中的“x值”元素连接到每个函数和输出元素。以下是完成的数据映射:

点击位于映射区域下方的“输出”按钮,即可处理输入文件,生成输出结果,并打开预览窗口。

在这个例子中,输入值从零开始,以十分之一为单位递增到15,输出结果包含每个对应的正弦、余弦和正切值。我们可以保存该文件,然后在XMLSpy中打开它,利用XMLSpy的网格视图,创建高度定制化的图表,甚至可以将图表导出,用于包含在报告或演示文稿中

使用 XSLT3 进行数据映射,构建复杂表达式

您可以将 XSLT3 函数与其他库中的函数结合使用,以构建复杂的表达式。 假设我们想要将一个二次方程,例如 y = 4x² – 3,应用于一系列输入值。 我们可以创建一个映射,将 XSLT3 中的 pow 函数(用于计算指数)与其他库中的乘法和加法函数结合起来。

请注意,映射中函数的顺序明确定义了表达式中隐含的处理顺序:首先进行指数运算,然后是乘法,最后是减法。如果表达式使用了括号来改变默认的处理顺序,我们会修改映射中函数的顺序,以设置所需的处理顺序。

也许我们希望对一组输入值进行多次计算,每次使用不同的表达式变体,然后比较结果。我们可以创建一个用户函数来描述这些表达式,并且可以修改输出文件的结构,以便记录生成每个输出文件时使用的指数、乘数和修正因子。

以下是针对由不同表达式生成的每个输出文件的期望结构:

用户函数将从输入 XML 文件读取 x 值,计算表达式,并将函数参数传递给输出,以便进行记录。

以下是完整的映射关系,以及在用户函数中的表达方式:

以下是生成的输出文件:

用户函数可以轻松地插入到其他映射关系中,或者在多个 MapForce 用户之间共享。我们开始创建用户函数,首先选择定义表达式的函数,然后点击主菜单中的“函数”选项:

以下是我们对用户函数的最终定义:

如果您的数据映射和集成项目需要使用 XSLT3 的 fortrigonometry 函数或其他高级 XSLT3 功能进行数据映射,请了解 MapForce,这是一款屡获殊荣的图形化数据映射工具,适用于各种数据格式之间的转换和集成。您可以下载试用版 MapForce 免费试用版 包括教程、帮助文档以及更多示例!