gpt4 book ai didi

java - 带有转义字符 '#' 的 JXPath 表达式会出现问题

转载 作者:行者123 更新时间:2023-12-02 12:12:36 26 4
gpt4 key购买 nike

输入 JSON:

[
{"Activity":"yes","SBNumber":"123"},
{"Activity":"yes","SB#":"123"}
]

JXPath 表达式:

//works : returns "123"
JXPathContext.newContext(input).getValue("//*/SBNumber")

//fails: throwing JXPathInvalidSyntaxException
JXPathContext.newContext(input).getValue("//*/SB#")

如何转义 # 以从 SB# 检索值?

失败的尝试包括

JXPathContext.newContext(input).getValue("//*/SB\\#")  
JXPathContext.newContext(input).getValue("//*/SB[#]")
JXPathContext.newContext(input).getValue("//*/SB*")

等等..

但是,我可以从下面检索节点

JXPathContext.newContext(input).getValue("//*/*[contains(.,'SB#')]")

但是它仅引用父节点:-(

任何可能的解决方案/替代方案都会有帮助.. tx

最佳答案

添加上下文变量可以帮助转义,如下所述 -

JXPathContext context = JXPathContext.newContext(input);
context.getVariables().declareVariable("blabla", "SB#");
context.getValue("//*/$blabla");

关于java - 带有转义字符 '#' 的 JXPath 表达式会出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46422052/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com