提问人:Swagata Mondal 提问时间:9/13/2023 最后编辑:Swagata Mondal 更新时间:9/13/2023 访问量:47
在XPath中,当我想验证父节点与条件中存在时,如何实现?
how to implement when in xpath where i want to validate a parent node is same as present in condition?
问:
"name" : "a",
"type": "container",
"kids": [{
"name": "a1",
"type": "container",
"kids": [{
"name": "a2",
"type": "leaf",
"when": "../a"
}]
}]
}
在 When 条件中,我想在节点 ->parent ->parent 中验证 is “a” 现在如何验证该条件
答:
0赞
Siebe Jongebloed
9/13/2023
#1
如果您的内容是 XML,并且您想要检查上下文的父级是否为 ,则可以使用以下命令:a
parent::*/parent::a
评论
0赞
Swagata Mondal
9/13/2023
我的内容是 JSON 的,你能帮我解决吗
0赞
Michael Kay
9/13/2023
#2
若要使用 XPath 处理 JSON,需要 XPath 3.1 处理器。
与 XML 的树模型不同,JSON 的树模型没有父指针,这意味着您无法从节点导航到其父节点。这基本上意味着你必须在下降树时收集你需要的信息,并以参数的形式传递它。
充实这一点需要更多的上下文来准确理解您要做什么。
0赞
Martin Honnen
9/13/2023
#3
XPath 3.1可以将JSON查询为XDM映射/数组,查找运算符对于您的示例(有点格式)?
{
"name" : "a",
"type": "container",
"kids": [
{
"name": "a1",
"type": "container",
"kids": [
{
"name": "a2",
"type": "leaf",
"when": "../a"
}
]
}
]
}
您可以测试例如
?name = 'a' and ?kids?*?kids?*?when = '../a'
并会给真。但是,我不确定您是否希望使用节点 XPath 步骤语法,这不是 XPath 3.1 提供的;您可能会在其他一些内部将 JSON 转换为某些 XML 的实现中找到它。/
评论
github.com/json-path/JsonPath
。另请注意,如果这是您需要实施的唯一检查,则无需依赖复杂的处理;相反,您可以将 JSON 解析为自定义树状数据结构,这将使您想要实现的检查变得轻而易举。