我正在使用Webservice并过滤XML。这是输出的外观(以XML格式):
扫描细节()
package com.company.data.render.model
@RestController
public class ControllerClass {
@Autowired
ApplicationPropertiesServiceImpl services;
@RequestMapping(value = "/node1", method = RequestMethod.GET)
@ResponseBody
public ParentNode getNode1()
{
Child node = new Child();
List<Map<String, Object>> properties properties = services.getData("A",xxx);
node.addtree();
node.setProperties(properties);
return node;
}
} -------------------------------------------------------------------------------
package com.company.data.service;
@Component
public List<Map<String, Object>> getData(String type,String name)
{
if(type.equalsIgnoreCase("A"))
{
String sql = "select * from data.data_properties(?)";
List<Map<String, Object>> rows = jdbcTemplate.queryForList(sql,host);
return rows;
}else if(properties.equalsIgnoreCase("B"))
{
String sql = "select * from data.application_properties(?)";
List<Map<String, Object>> rows = jdbcTemplate.queryForList(sql,host);
return rows;
}
}
-------------------------------------------------------------------------------
package com.company.data.render.model;
@Component
public class Child {
@Autowired
ApplicationPropertiesServiceImpl services;
public void addtree()
{
List<Map<String, Object>> properties=services.getData("B", "xxy");
}
}
我想根据状态类型区分两次扫描。
(编辑:这是完整的API输出) 1-我想从XML过滤状态。因为有很多状态无法过滤当前状态,这是第一位的。 2-基于说明我想从XML获取数据。
Scan
Status type - UD
Time
Scan
Status type - DL
Time
答案 0 :(得分:0)
鉴于上面的XML - 无法完成,因为您的两个元素是相同的。
如果我们假设不同的'ScanType'元素是xpath:
//ScanDetail/ScanType[string()=~/UD/]/..
使用我的xpath引擎(使用XML::Twig
和perl
)。
这应该这样做,但我没有测试过它:
//ScanDetail[ScanType = 'UD']