/**
* 查询 xml格式 数据
*
* @param filePath
* @param internalUserId
* @param clazz
* @param <T>
* @return
*/
public static <T> List<T> queryXMLList(int internalUserId, String filePath, Class<T> clazz) {
List<T> result = new ArrayList();
String xmlData = readYunPanFile(internalUserId, filePath);
if (StringUtils.isEmpty(xmlData)) {
return new ArrayList<T>();
}
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new ByteArrayInputStream(xmlData.getBytes()));
NodeList nodeRList = document.getElementsByTagName("r");
if (nodeRList.getLength() <= 0) {
return new ArrayList<T>();
}
for (int i = 0; i < nodeRList.getLength(); i++) {
Node node = nodeRList.item(i);
Map<String, Object> map = ObjectMapperUtil.toJavaObject(ObjectMapperUtil.toJSONString(clazz.newInstance()), Map.class);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) node;
map.keySet().forEach(k -> {
String value = element.getAttribute(k);
map.put(k, value);
});
T t = ObjectMapperUtil.toJavaObject(ObjectMapperUtil.toJSONString(map), clazz);
result.add(t);
}
}
} catch (IOException | ParserConfigurationException | InstantiationException | SAXException | IllegalAccessException e) {
throw new BusinessException(ErrorCode.B_0001, "get fileName Fail");
}
return result;
}
读取XML文件内容返回List<T>
于 2023-12-29 13:25:55 首次发布