用于数据报表的 XPath 表达式
在我们的上一篇文章中,标题是: 使用 XPath 表达式来精确选择数据, 我们详细介绍了如何使用 XMLSpy 工具,通过构建 XPath 表达式,从美国教育部提供的大量数据集中提取出其中的一个数据表。

我们可以利用在 XMLSpy 中完成的工作,快速地在 StyleVision 中设计一份报表或电子表格,从而清晰地呈现数据中的关键信息。 我们可以从在 StyleVision 中基于 gradData XML 模式和我们在 XMLSpy 中创建的 XML 文件进行一个简单的设计开始。 由于我们在 XMLSpy 中保存了最终完善的图表设置,我们也可以在 StyleVision 中重新加载这些图表设计。

我们将使用在 XMLSpy 中开发的 XPath 表达式 set setnum="FOS",在两个地方使用该表达式,以选择大型 XML 文件中包含的单个表格。该表达式只会匹配 setnum 属性值为 "FOS" 的 /data/set 节点 set setnum="FOS".
首先,我们将使用一个表达式来定义描述元素的条件输出。每个表格都包含一个描述,这个描述可以作为有用的图表标题。我们可以在“属性”辅助窗口中输入用于定义条件的 XPath 表达式。

当光标悬停在条件上时,该表达式就会显示出来

我们还将使用 XPath 表达式,在“图表设置”对话框中选择用于绘制图表的数据行

这两个例子产生了文章顶部第一张图片中显示的HTML输出结果。
一个 XPath 表达式加上一个下拉框,就能实现用户选择的功能
我们可以将报告转换为一个交互式版本 Authentic 我们可以通过在 XPath 表达式中使用 XML 元素作为变量,而不是硬编码的字符串值“FOS”,来实现电子表单的功能。 这样,我们就可以允许用户通过下拉列表来设置 XML 元素的内容。
为了实现此功能,我们将插入一个额外的 XML 文件,用于存储用户的临时选择。该文件将在 StyleVision 设计概览和模式树窗口中显示,具体内容如下。

我们可以将下拉列表框插入到表单的顶部,位于描述和图表之上。

StyleVision 提供了多种方式来定义下拉框的行为。我们将使用一个包含可见条目的列表,以及与之对应的 XML 值。

下拉列表框会将一个XML值分配给userselections.xml文件中的图表项,然后我们可以将该值与gradData.xml文件中的setnum属性进行匹配。
接下来,我们需要修改两个 XPath 表达式。用于描述字段的条件所用的新 XPath 表达式是:
../@setnum=$XML2/userchoice/chart
如以下“属性”窗口所示。

新的 XPath 表达式,用于获取图表数据,如下所示: $XML/data/set[@setnum=$XML2/userchoice/chart]/row
如以下图表设置对话框中所示。

StyleVision 包含一个 XPath 表达式编辑器,您可以通过点击上方显示的 XPath 表达式旁边的“编辑”按钮来访问它。该 XPath 表达式编辑器具有构建模式和评估模式,以帮助您编写 XPath 1.0 和 XPath 2.0 表达式。构建模式提供实时语法检查,并提供自动补全功能,以提高效率。以下是缩小后的 XPath 编辑器界面:

在我们将下拉框调整大小以适应最长的输入内容后,电子表单会呈现如下所示:

下拉列表框允许用户选择其他任何图表

新的选择对应的XML值将替换掉现有内容 <chart> 在用户选择的 XML 文件(userselections.xml)中,这两个 XPath 表达式都会产生新的结果:

点击此处下载 Altova MissionKit 的免费试用版,其中包括 XMLSpy、MapForce 和 StyleVision,并开始使用 XPath 来优化您的数据选择!