开发的时候文件上传平台给我返回了一个xml格式的字符串,有文件ID和文件名称需要我返回给前端。
记录一下开发过程中xml字符串转实体类对象
实体类对象
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Pages {
private String pageId;
private String fileName;
private String nodeId;
private String nodeName;
private String responseCode;
private String responseMsg;
}
代码实现
public class test {
public static void main(String[] args) {
readStringXml();
}
@SuppressWarnings("unchecked")
public static void readStringXml() {
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<root>\n" +
" <PAGES>\n" +
" <PAGE PAGEID=\"faklf21312op1234o1k132k3nk1\" FILE_NAME=\"test.xlsx\" NODE_ID=\"xxx_01\" NODE_NAME=\"xxxxxxxx\"/>\n" +
" </PAGES>\n" +
" <RESPONSE_CODE>1</RESPONSE_CODE>\n" +
" <RESPONSE_MSG>上传成功</RESPONSE_MSG>\n" +
"</root>";
try {
Document doc = DocumentHelper.parseText(xml);
// 将字符串转为XML
Element rootElt = doc.getRootElement();
// 获取根节点
// 获取根节点的名称
Pages pages = new Pages();
Element page = rootElt.element("PAGES").element("PAGE");
pages.setPageId(page.attributeValue("PAGEID"));
pages.setFileName(page.attributeValue("FILE_NAME"));
pages.setNodeId(page.attributeValue("NODE_ID"));
pages.setNodeName(page.attributeValue("NODE_NAME"));
pages.setResponseCode(String.valueOf(rootElt.element("RESPONSE_CODE").getStringValue()));
pages.setResponseMsg(String.valueOf(rootElt.element("RESPONSE_MSG").getStringValue()));
System.err.println(pages);
} catch (DocumentException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
依赖包
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
<scope>provided</scope>
</dependency>