带有转义字符“#”的 JXPath 表达式给出问题

JXPath expression with escape character '#' giving issues

输入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");