【发布时间】:2020-02-21 07:46:18
【问题描述】:
我遇到了这个 XPath 字符串...
courses[?(@.id==101)].students[?(@.id==111)]
我什至不确定它是否是有效的 XPath,因为“?”和 '。'被使用。而且它在许多在线 XPath 评估器中不起作用。
尽管在 XPath 3 中,有一个查找运算符 ('?') 和一些 JSON 扫描功能。参考:https://www.altova.com/training/xpath3/xpath-31#lookup-operator
所以,我想知道 '?()' 和 '.' 的确切用途是什么是。
到目前为止,我猜测这个表达式正在用于搜索 XML 中的 JSON 内容。
猜测JSON对象是这样的:
{
"courses":[
{
'id':'101',
'name':'Course 101',
'students':[
{
'id':'111',
'name':'Student 111'
}
]
}
]
}
简而言之,它是一个有效的 XPath 3 表达式吗?如果是,那么“?()”和“。”到底是什么?在做什么?
【问题讨论】:
-
哎呀...才知道这是一个 JsonPath 表达式。它只是有误导性的变量和类名。
-
您应该将问题重新表述为关于 json 以便有意义。