计算表达式
在XPath/XQuery窗口中,您可以构建一个XPath或XQuery表达式(以您可以选择的语言版本;参见下方截图),然后在您在范围选项中指定的范围内计算表达式(参见截图)。您可以在当前文件,以及以下多个文件集上计算表达式:(i) 所有当前打开的文档;(ii) 当前活动的XMLSpy项目的文件;或(iii) 选定文件夹的文件。为了简单地测试表达式,将一个合适的文件作为范围是合适的。然而,在XPath/XQuery窗口中,还可以在一个或多个文件中查找特定数据,并在“结果”窗格中报告这些数据;在这种情况下,需要在范围中选择适当的文件集。
XPath/XQuery窗口包含一个工具栏和两个窗格,“表达式”窗格(位于上方截图左侧)和“结果”窗格(位于上方截图右侧)。
计算过程
要计算XPath/XQuery表达式,请执行以下操作(另请参见上方截图):
1.选择计算模式:在开始计算/调试(F5)命令(位于工具栏的左上角;参见下方截图)的下拉菜单中选择开始计算。
2.水平/垂直布局:要切换布局,单击水平/垂直布局按钮(位于工具栏的右上角)。默认为垂直布局。
3.选择语言版本:在工具栏中,选择您想要计算的表达式的语言版本,例如XPath 3.1。默认为XPath 3.1。另请参见XML Schema Selector和XML Schema Field部分。
4.输入表达式:在“表达式”窗格中,输入要计算的表达式。为了获取构造表达式的帮助,请使用表达式生成器的输入助手。有关“表达式”窗格的编辑功能的更多信息,另请参见在“表达式”窗格中编辑部分。
5.选择计算范围:在工具栏的范围选项中,选择要计算表达式的文件。有以下选项:当前文件;打开的文件;(XMLSpy)项目;或文件夹。默认为当前文件。
如果选择当前文件,则将查询当前活动的文件。选择打开的文件将针对当前在XMLSpy中打开的所有文件计算表达式。项目指的是当前活动的XMLSpy项目。(通过选中跳过外部文件夹图标可以排除XMLSpy项目中的外部文件夹。)文件夹选项使您能够浏览所需的文件夹;XPath表达式将根据此文件夹中的XML或JSON文件进行计算。
6.选择XML或JSON计算:如果计算范围是当前文件,则计算模式(XML或JSON)将由文档的文件类型的符合类型自动确定(符合JSON的文件使用JSON模式,非JSON文件使用XML模式)。您无法更改自动检测的模式,并且该按钮被禁用。如果计算范围是多个文件,则将启用这两个按钮,您可以从中选择想要的计算模式;默认是之前选择的这两个选项中的任意一个。
7.设置上下文节点:可以将上下文节点设为以下之一:(i) 根节点,或(ii) 活动文档中的当前选定内容。您可以通过工具栏上的按钮将当前选定内容设置为XPath/XQuery的起点在这两个设置之间进行切换。默认设置是根节点。
8.XML验证:如果打开了验证XML工具栏按钮,则正在计算的XML文件将被验证。错误被视为警告,并在“结果”窗格(参见下方截图)中报告,但计算仍在继续。
9.计算表达式:如果选择了工具栏的切换选项键入时计算,则当您输入表达式时,计算结果将显示在“结果”窗格中。如果未选中该选项,则必须通过单击开始计算/调试(F5)(位于工具栏的左上角)命令来开始计算。
|
XML Schema Selector和XML Schema Field
XML Schema Selector和XML Schema Field选项可用于某些XPath 1.0的限制性子集,并且在XML Schema中定义了唯一标识约束时十分有用。当选择其中一个选项时,在XPath表达式中仅允许名称测试(和通配符*);在这种情况下不得使用谓词和XPath函数。此外,如果选择了XML Schema Selector选项,仅允许子轴上的表达式;如果选择了XML Schema Field选项,允许子轴和特性轴上的表达式。有关更多信息,请参见W3C的XML Schema: Structures Recommendation。
在“表达式”窗格中编辑
在“表达式”窗格中编辑表达式时,请注意以下几点:
•要在多行上创建表达式(为了便于阅读),请使用Return键。
•要放大/缩小表达式字段中的文本,请单击表达式字段,然后在按住Ctrl的同时转动鼠标滚轮。请注意,这也适用于“结果”窗格。
•您可以让XMLSpy为您输入,而不是手动输入该节点的定位器路径表达式。为此,请执行以下操作:(i) 将光标放在XPath表达式中想要输入定位器路径的位置;(ii) 将光标放在想要定位的节点内;(iii) 单击工具栏中的复制当前选定内容的XPath按钮。这将在表达式中输入所选节点的定位器路径。定位器路径是从文档根节点开始的绝对路径。
XQuery和JSON计算
•有关XQuery计算的信息,请参见XQuery计算部分。(XQ图标表示XQuery计算;XQU图标表示XQuery Update执行。)
•有关查询JSON文档的信息,请参见针对JSON的XQuery表达式和使用XSLT/XQuery进行JSON转换部分。
“结果”窗格
“结果”窗格显示在下方截图的右侧。请注意,它有自己的工具栏。
“结果”窗格具有以下功能:
•如果您想要在输出中显示XML文件的位置和XPath表达式(正如下方截图所示),请打开在输出中显示标题图标。
•结果列表由两列组成:(i) 节点名称或数据类型;(ii) 节点的内容。
•如果XPath表达式返回节点(例如元素或特性),您可以选择是否应将节点的整个内容显示为该节点的值。为此,请打开显示完整结果。
•当结果包含一个节点(包括一个文本节点),而不是表达式生成的文本时,在“结果”窗格中单击该节点将在主窗口中突出显示XML文档中的相应节点。
•如果对多个文件(在范围选项中指定)执行计算,则每个文件的结果都将在该文件的路径下方单独列出(参见下方截图)。如果计算模式是XML,则将计算符合XML的文件,跳过其他类型的文件。如果计算模式是JSON,则将计算符合JSON的文件,跳过其他类型的文件。
•如果结果涉及多个文件,则在结果列表中单击文件名将在XMLSpy 中打开该文件,并使之成为活动文件。
•您可以复制结果子行的两列,或仅复制值列。要复制所有列,请在子行上右键单击并打开复制包括所有列。(或者,您可以通过“结果”窗格工具栏中的图标来打开/关闭该命令。)然后,右键单击想要复制的子行,然后选择复制子行(针对该子行)或全部复制(针对所有子行)。
“结果”窗格的工具栏
“结果”窗格的工具栏包含用于导航、搜索和复制功能的图标。下方表格对这些图标(从左至右)进行了说明。结果列表项的上下文菜单中也提供了相应的命令。
图标 | 功能描述 |
下一个,上一个 | 分别选择结果列表中的下一个和上一个数据项。 |
将所选文本行复制到剪贴板 | 将所选结果项的值列复制到剪贴板。要复制所有列,请打开复制包括所有列命令(参见下文)。 |
将所有消息复制到剪贴板 | 将所有结果项的值列复制到剪贴板,包括空值。每一项都作为一个单独的行进行复制。 |
复制包括所有列 | 在(i) 复制所有列或(ii) 仅复制值列之间切换。列的分隔符是一个空格。 |
查找 | 将打开查找对话框以在结果列表中搜索任何字符串,包括特殊字符。 |
查找上一个 | 搜索上一次在查找对话框中输入的词的上一个匹配项。 |
查找下一个 | 查找上一次在查找对话框中输入的词的下一个匹配项。 |
展开子级 | 将展开所选项及其所有后代。 |
折叠子级 | 将折叠所选项及其所有后代。 |
清除 | 清除结果列表。 |
显示选项
当您点击XPath/XQuery窗口右上角的显示选项按钮(齿轮图标)时,会出现一个对话框,您可以在其中指定“结果”窗格的显示选项。您可以选择将结果显示为可扩展的树结构或序列化的XML字符串(节点显示为文本字符串,就像在XML文档中写入一样)。此外,您可以选择以内联的形式显示特性,这意味着特性及其值与元素显示在同一行上(除了显示在节点的树结构中之外)。