我有两个xpath查询
query1
和query2
执行query1的结果是
row11
row12
执行query2的结果是
row21
row22
row23
row24
我想用以下结果编写单个查询:
row11
row12
row21
row22
row23
row24
你能帮助我吗?
答案 0 :(得分:0)
我只需要List
行添加两个查询的结果。如果两个结果都可以包含相同的行,则必须定义标识符,并使用带有此id的Map
作为键。
简单List
的示例:
QueryManager qm = session.getWorkspace().getQueryManager();
Query q1 = qm.createQuery(statement1, "xpath");
QueryResult r1 = q1.execute();
RowIterator rows1 = r1.getRows();
Query q2 = qm.createQuery(statement2, "xpath");
QueryResult r2 = q2.execute();
RowIterator rows2 = r2.getRows();
List<Row> rowsMerged = new ArrayList<Row>();
while (rows1.hasNext()) {
rowsMerged.add(rows1.nextRow());
}
while (rows2.hasNext()) {
rowsMerged.add(rows2.nextRow());
}
答案 1 :(得分:0)
您可以尝试使用XPath union(|
)运算符。例如,给定这个XML:
<Employee>
<EmpId>1</EmpId>
<Name>Sam</Name>
<Sex>Male</Sex>
</Employee>
这个包含union运算符的XPath:
(/Employee/EmpId | /Employee/Name)
XPath测试器中的输出节点:
<EmpId>1</EmpId>
<Name>Sam</Name>