【问题标题】:XPath 3.1 reference that's complete & succinct完整且简洁的 XPath 3.1 参考
【发布时间】:2020-07-16 19:06:23
【问题描述】:

我一直在阅读the W3 spec for XPath 3.1,但对于大多数人来说阅读时间太长了(他们只会退出)。哪里有缩写规范?

我们的受众是我们系统的用户,他们需要编写 XPath 语句来提取他们需要的数据。他们不是程序员,他们是业务用户。他们希望在遇到困难时尽快找到满足其特定需求的解决方案。

更新:首先,我完全同意@kjhughes 在“内在张力”下方的评论。而且我认为迈克尔提出了一个很好的观点,即快速指南应该是主要用途 - 删除边缘情况。并将注释减少到最低限度(同样没有极端情况),但对示例是肯定的。

我们多年来一直使用的是this tutorial,它倾向于在简单性和教授所有基础知识之间取得很好的平衡。而且this one也不错。

但两者都没有讨论 XPath 3.1 或为 JSON 文件设计 XPath。有没有类似的东西。

例如,以下是我仍在努力解决的三个基本项目:

  1. 基本查询的语法是什么。使用Southwind.json 是否是“/Employees/Employee”来获取所有员工节点的列表(我无法在我的代码中成功加载 JSON 文件,因此无法测试)?
  2. 是否曾经从 XPath 查询/评估返回映射? From reading this 看起来您可以创建和使用它们,但您永远不会将它们作为查询的返回项。
  3. 是否仅在查询 JSON 时返回数组? From reading this,我认为是这样。这只是映射到一个 JSON 数组 - 对吗?

【问题讨论】:

  • 有两种方法可以编写更短的规范。你可以把边缘案例的讨论拿出来,这样简洁而不完整,或者你可以拿出很多笔记和例子,这样简洁、完整、不可读,
  • @MichaelKay 我同意。我根据您和 kjhughes 的评论/回答扩展了上面的查询。谢谢

标签: xml xpath xpath-3.1


【解决方案1】:

完整与简洁之间存在着内在的张力。

对于完整,官方规范无可替代:XML Path Language (XPath) 3.1。如果它看起来对您的需求来说过于广泛,那么您根本就不是目标受众。我们希望语言实现者有一个完整、精确的标准规范来构建库和工具。这就是制定规范的全部意义所在。

为了简洁,你必然会牺牲完整性,但这里有一些可能适合作为概述或介绍的资源:


每个问题更新:

我们的受众是需要编写 XPath 的系统用户 声明以撤回他们需要的数据。他们不是程序员, 他们是商业用户。他们想找到解决问题的方法 遇到困难时尽快满足特定需求。

业务用户应该有一个适当的、特定于应用程序的 GUI,而不是期望编写原始 XPath 或正则表达式或 SQL。

如果您坚持让您的业务用户编写 XPath,并且他们至少在技术上很复杂,那么您最好的办法是编写包含常用习语和示例的案例手册,让他们可以尝试学习。补充介绍 XPath 基础知识。

【讨论】:

  • 我为此添加了更多信息。我可能想多了。如果对于基本和中型复杂查询,所有更改的只是 JSON 结果的数组类型,那么 XPath 2.0 教程中没有太多新内容可添加。谢谢。
【解决方案2】:

基本的问题是 XPath 已经成为一种相当大的语言,而且你构建的参考越简洁,它就越不可能包含你想问的每个问题的答案。对于您的具体问题:

基本查询的语法是什么。使用 Southwind.json 是不是“/Employees/Employee”

我对数据集不熟悉。

地图是否曾经从 XPath 查询/评估中返回?

当然。返回地图的最简单查询是map{}

是否仅在查询 JSON 时返回数组?

没有。例如查询[1, 2, 3]返回一个数组,不涉及JSON。

【讨论】:

  • 是否有一些使用 XPath 查询 JSON 的入门教程? W3C 规范不是学习如何制作查询的好方法。
猜你喜欢
  • 2012-03-31
  • 1970-01-01
  • 1970-01-01
  • 2011-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-22
相关资源
最近更新 更多