如何在 JXPath 表达式中使用字符串的子字符串
How to use a substring of a string in a JXPath expression
我有一个包含航班号和登机口号的 java 个对象的列表:
public class Flight {
public String flightNumber;
public String gateNumber;
}
出于这个问题的目的,我的列表包含具有以下航班号和登机口号的对象:
"AA123" "10"
"BB789" "11"
"BB124" "10"
"AA456" "12"
我知道如果我想 select 10 号门的所有对象,我可以使用以下 JXPath 表达式(有效):
.[gateNumber = "10"]
我需要做的是 select 10 号登机口航班号以 "AA".
开头的所有物品
我试过以下方法,但 none 有效:
.[gateNumber = "10" and flightNumber.startsWith("AA")]
.[gateNumber = "10" and flightNumber.substring(0, 2) = "AA"]
.[gateNumber = "10" and substring(flightNumber, 0, 2) = "AA"]
.[gateNumber = "10" and substring($flightNumber, 0, 2) = "AA"]
我的 JXPath 表达式应该是什么?甚至可以不编写自定义扩展吗?
我找不到使用本机 JXPath 的方法,所以最后我不得不开发一个扩展,如果第一个字符串参数的内容以第二个字符串参数的内容开头,则返回 true:
.[gateNumber = "10" and utils:startsWith(flightNumber, "AA")]
编辑
我没试过,但显然 JXPath 支持 XPath 中的 starts-with()
函数。
我有一个包含航班号和登机口号的 java 个对象的列表:
public class Flight {
public String flightNumber;
public String gateNumber;
}
出于这个问题的目的,我的列表包含具有以下航班号和登机口号的对象:
"AA123" "10"
"BB789" "11"
"BB124" "10"
"AA456" "12"
我知道如果我想 select 10 号门的所有对象,我可以使用以下 JXPath 表达式(有效):
.[gateNumber = "10"]
我需要做的是 select 10 号登机口航班号以 "AA".
开头的所有物品我试过以下方法,但 none 有效:
.[gateNumber = "10" and flightNumber.startsWith("AA")]
.[gateNumber = "10" and flightNumber.substring(0, 2) = "AA"]
.[gateNumber = "10" and substring(flightNumber, 0, 2) = "AA"]
.[gateNumber = "10" and substring($flightNumber, 0, 2) = "AA"]
我的 JXPath 表达式应该是什么?甚至可以不编写自定义扩展吗?
我找不到使用本机 JXPath 的方法,所以最后我不得不开发一个扩展,如果第一个字符串参数的内容以第二个字符串参数的内容开头,则返回 true:
.[gateNumber = "10" and utils:startsWith(flightNumber, "AA")]
编辑
我没试过,但显然 JXPath 支持 XPath 中的 starts-with()
函数。