java - 接收 XML 列表
问题描述
我想用几个内部列表转换这个主要的 XML 标记:
<statuses>
<status code="201.0000" description="....." severity="information"/>
<status code="200.1077" description="....." severity="information"/>
<status code="200.1077" description="....." severity="information"/>
</statuses>
我试过这个:
@XmlRootElement(name = "payment")
@XmlAccessorType(XmlAccessType.FIELD)
public class mainXML {
@XmlElement(name = "statuses")
public List<Statuses> statuses;
....
}
// 内部对象
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Statuses {
@XmlElement(name = "status")
private Status status;
.....
}
// 内部对象
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Status {
@XmlElement(name = "status")
private String status;
@XmlAttribute
public String code;
@XmlAttribute
public String severity
.........
}
但我明白了
<statuses>
<status code="500.1072" description="....." severity="warning"/>
</statuses>
你知道如何status
在主标签中正确实现几个标签statuses
吗?
我使用 WebFlux 获得响应,并使用以下代码打印 XML:
//Create JAXB Context
JAXBContext jaxbContext = JAXBContext.newInstance(EnrolCheckResponse.class);
//Create Marshaller
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
//Required formatting??
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
//Print XML String to Console
StringWriter sw = new StringWriter();
//Write XML to StringWriter
jaxbMarshaller.marshal(employee, sw);
//Verify XML Content
String xmlContent = sw.toString();
System.out.println(xmlContent);
解决方案
您真的不需要中间的“状态”类,JAXB 已经知道列表的含义。
相反,设置 Status 的 XmlRootElement 的名称,以便 JAXB 知道在“statuses”中期望哪些节点
@XmlRootElement(name = "payment")
@XmlAccessorType(XmlAccessType.FIELD)
public class mainXML {
@XmlElement(name = "statuses") // name of the wrapper
public List<Status> statuses;
...
}
@XmlRootElement(name = "status") // name of a single node
@XmlAccessorType(XmlAccessType.FIELD)
public static class Status {
@XmlElement(name = "status")
private String status;
@XmlAttribute
public String code;
@XmlAttribute
public String description;
@XmlAttribute
public String severity;
...
}
推荐阅读
- oracle - Oracle sql - 使用 DBMS_REDEFINITION 包重新定义表以启用表的 ROWDEPENDENCIES
- python - 发送带参数的发布请求时脚本卡住
- javascript - Next.js 中的客户端和服务器端是什么?
- sql-server - 使用 SQL Server 中不同表中的数据创建逗号分隔值字符串
- tensorflow - 为什么 save_to_dir 在 Keras 的 flow_from_directory 中不起作用
- sql - Postgresql 使用 json_build_obj
- python - 如何在 plotly dash 中更新 clientside_callback 的颜色
- node.js - mysqlx 插件在 Amazon RDS (MySQL 8.0) 上无法访问
- python - 如何使用 pygame.mask 进行颜色冲突?
- python - 递归 - Python问题,返回值问题