java - 如何在 JXPath 表达式中使用字符串的子字符串

标签 java jxpath

我有一个包含航类号和登机口号的 java 对象列表:

public class Flight {
  public String flightNumber;
  public String gateNumber;
}

就本问题而言,我的列表包含具有以下航类号和登机口号的对象:

"AA123"  "10"
"BB789"  "11"
"BB124"  "10"
"AA456"  "12"

我知道,如果我想选择 10 号门处的所有对象,我可以使用以下 JXPath 表达式(有效):

.[gateNumber = "10"]

我需要做的是选择 10 号登机口处航类号以“AA”开头的所有对象。

我尝试了以下方法,但都不起作用:

.[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 表达式应该是什么?甚至可以不编写自定义扩展吗?

最佳答案

我找不到使用 native JXPath 的方法,所以最后我不得不开发一个扩展,如果第一个字符串参数的内容以第二个字符串参数的内容开头,则返回 true:

.[gateNumber = "10" and utils:startsWith(flightNumber, "AA")]

编辑

我还没有尝试过,但显然 JXPath 支持 XPath 的 starts-with() 函数。

关于java - 如何在 JXPath 表达式中使用字符串的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31821635/

相关文章:

java - 如何使用 JxPath 和 DOM 解析器解析 XML 文件

xpath - 使用 Commons JXPath 解析 XML 的问题

java - Apache Commons JXPath 搜索在 XPath 搜索期间是否编码对象?

java - java中如何对列表对象值与空值求和?

java - 通过FTPS协议(protocol)发送文件到服务器

xml - XPath 选择不同命名空间中的节点

java - 如何在jxpath中使用text()

java - Eclipse 中的 CPLEX 库路径错误

java - 如何真正完全地从 jar 中排除一个包?

java - 查找 List<Long> 中与某个元素相对应的所有索引的方法