首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JXPath getValue结果还包括以前搜索的结果

JXPath getValue结果还包括以前搜索的结果
EN

Stack Overflow用户
提问于 2013-08-02 08:03:56
回答 1查看 125关注 0票数 0

我使用XPath来使用JXPathContext搜索整个Java对象。我有以下代码。类部门有一个employees集合。

代码语言:javascript
复制
public List<Employee> getEmployeesByDepartment(String departmentName, Company company){
    JXPathContext context = JXPathContext.newContext(company);
    context.setLenient(true);

    @SuppressWarnings("unchecked")
    List<Employee> employees = (List<Employee>) context
            .getValue("/company[department/name ='"+departmentName+"']/department/employee");

    return employees;
}

例如,我第一次呼叫HR部门,然后第二次呼叫Account。第二次调用后返回的列表将包含来自Accounts和HR部门的员工。

EN

回答 1

Stack Overflow用户

发布于 2013-08-02 17:59:41

您的XPath正在选择所有公司中具有指定名称的部门的所有部门的所有员工。它将在所有搜索中执行此操作,而不仅仅是以后的搜索。要仅选择指定部门内的员工,请执行以下操作:

代码语言:javascript
复制
"/company/department[name ='" + departmentName + "']/employee"

您可能还需要公司名称的谓词,但是我不知道您的xml是什么样子的,所以我不能建议您这样做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18006667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档