Altova XMLSpy 2024 Enterprise Edition

在XPath/XQuery窗口中,您可以构建一个XPath或XQuery表达式(以您可以选择的语言版本;参见下方截图),然后在您在范围选项中指定的范围内计算表达式(参见截图)。您可以在当前文件,以及以下多个文件集上计算表达式:(i) 所有当前打开的文档;(ii) 当前活动的XMLSpy项目的文件;或(iii) 选定文件夹的文件。为了简单地测试表达式,将一个合适的文件作为范围是合适的。然而,在XPath/XQuery窗口中,还可以在一个或多个文件中查找特定数据,并在“结果”窗格中报告这些数据;在这种情况下,需要在范围中选择适当的文件集。

 

XPXQWindowSpecVer

 

XPath/XQuery窗口包含一个工具栏和两个窗格,“表达式”窗格(位于上方截图左侧)和“结果”窗格(位于上方截图右侧)

 

计算过程

要计算XPath/XQuery表达式,请执行以下操作(另请参见上方截图)

 

1.选择计算模式:开始计算/调试(F5)命令(位于工具栏的左上角;参见下方截图)的下拉菜单中选择开始计算

XPXQWindowSelectEvalMode

2.水平/垂直布局:要切换布局,单击水平/垂直布局按钮(位于工具栏的右上角)。默认为垂直布局。

3.选择语言版本:在工具栏中,选择您想要计算的表达式的语言版本,例如XPath 3.1。默认为XPath 3.1。另请参见XML Schema Selector和XML Schema Field部分。

4.输入表达式:在“表达式”窗格中,输入要计算的表达式。为了获取构造表达式的帮助,请使用表达式生成器的输入助手。有关“表达式”窗格的编辑功能的更多信息,另请参见在“表达式”窗格中编辑部分。

5.选择计算范围:在工具栏的范围选项中,选择要计算表达式的文件。有以下选项:当前文件;打开的文件;(XMLSpy)项目;文件夹。默认为当前文件

xpath_where

如果选择当前文件,则将查询当前活动的文件。选择打开的文件将针对当前在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 SelectorXML 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转换部分。

 

“结果”窗格

“结果”窗格显示在下方截图的右侧。请注意,它有自己的工具栏。

XPXQWindowResultsPane

“结果”窗格具有以下功能:

 

如果您想要在输出中显示XML文件的位置和XPath表达式(正如下方截图所示),请打开在输出中显示标题图标。

结果列表由两列组成:(i) 节点名称或数据类型;(ii) 节点的内容。

如果XPath表达式返回节点(例如元素或特性),您可以选择是否应将节点的整个内容显示为该节点的值。为此,请打开显示完整结果

当结果包含一个节点(包括一个文本节点)而不是表达式生成的文本时,在“结果”窗格中单击该节点将在主窗口中突出显示XML文档中的相应节点。

如果对多个文件(在范围选项中指定)执行计算,则每个文件的结果都将在该文件的路径下方单独列出(参见下方截图)。如果计算模式是XML,则将计算符合XML的文件,跳过其他类型的文件。如果计算模式是JSON,则将计算符合JSON的文件,跳过其他类型的文件。

单击以展开/折叠

如果结果涉及多个文件,则在结果列表中单击文件名将在XMLSpy 中打开该文件,并使之成为活动文件。

您可以复制结果子行的两列,或仅复制值列。要复制所有列,请在子行上右键单击并打开复制包括所有列。(或者,您可以通过“结果”窗格工具栏中的图标来打开/关闭该命令。)然后,右键单击想要复制的子行,然后选择复制子行(针对该子行)或全部复制(针对所有子行)。

 

“结果”窗格的工具栏

“结果”窗格的工具栏包含用于导航、搜索和复制功能的图标。下方表格对这些图标(从左至右)进行了说明。结果列表项的上下文菜单中也提供了相应的命令。

 

图标

功能描述

下一个,上一个

分别选择结果列表中的下一个和上一个数据项。

将所选文本行复制到剪贴板

将所选结果项的值列复制到剪贴板。要复制所有列,请打开复制包括所有列命令(参见下文)

将所有消息复制到剪贴板

将所有结果项的值列复制到剪贴板,包括空值。每一项都作为一个单独的行进行复制。

复制包括所有列

在(i) 复制所有列或(ii) 仅复制值列之间切换。列的分隔符是一个空格。

查找

将打开查找对话框以在结果列表中搜索任何字符串,包括特殊字符。

查找上一个

搜索上一次在查找对话框中输入的词的上一个匹配项。

查找下一个

查找上一次在查找对话框中输入的词的下一个匹配项。

展开子级

将展开所选项及其所有后代。

折叠子级

将折叠所选项及其所有后代。

清除

清除结果列表。

 

 

显示选项

当您点击XPath/XQuery窗口右上角的显示选项按钮(齿轮图标)时,会出现一个对话框,您可以在其中指定“结果”窗格的显示选项。您可以选择将结果显示为可扩展的树结构或序列化的XML字符串(节点显示为文本字符串,就像在XML文档中写入一样)。此外,您可以选择以内联的形式显示特性,这意味着特性及其值与元素显示在同一行上(除了显示在节点的树结构中之外)。

 

© 2017-2023 Altova GmbH