Java JAXB解组返回空值
我正在使用JAXB将XML文件转换为java对象 我在web上查看了很多示例,但当我将对象解组到java对象时,仍然会在对象中获取空值 我想念什么Java JAXB解组返回空值,java,xml,jaxb,Java,Xml,Jaxb,我正在使用JAXB将XML文件转换为java对象 我在web上查看了很多示例,但当我将对象解组到java对象时,仍然会在对象中获取空值 我想念什么 File file = new File("BootloaderProtocol.xml"); JAXBContext jaxbContext = JAXBContext.newInstance(Command.class); Unmarshaller jaxbUnmarshaller = jaxbContext.
File file = new File("BootloaderProtocol.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(Command.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
Command commanda = (Command) jaxbUnmarshaller.unmarshal(file);
System.out.println(commanda);
我的班级:
@XmlRootElement(name="Command")
public class Command {
String COMMAND_ID;
String COMMAND_NAME;
String COMMAND_CODES;
public String getCOMMAND_ID() {
return COMMAND_ID;
}
@XmlElement
public void setCOMMAND_ID(String COMMAND_ID) {
this.COMMAND_ID = COMMAND_ID;
}
public String getCOMMAND_NAME() {
return COMMAND_NAME;
}
@XmlElement
public void setCOMMAND_NAME(String COMMAND_NAME) {
this.COMMAND_NAME = COMMAND_NAME;
}
public String getCOMMAND_CODES() {
return COMMAND_CODES;
}
@XmlElement
public void setCOMMAND_CODES(String COMMAND_CODES) {
this.COMMAND_CODES = COMMAND_CODES;
}
}
这是我的XML文件:
<Command>
<COMMAND>
<COMMAND_ID>0xFE01</COMMAND_ID>
<COMMAND_NAME>Start bootloader</COMMAND_NAME>
<COMMAND_CODES>EE120301FE0900</COMMAND_CODES>
</COMMAND>
</Command>
0xFE01
启动引导加载程序
EE120301FE0900
试试这样的方法
public class Command {
@XmlElement(name="COMMAND")
public NestedCommand command;
static class NestedCommand {
String COMMAND_ID;
这是正确的xml结构:
<Command>
<COMMAND_ID>0xFE01</COMMAND_ID>
<COMMAND_NAME>Start bootloader</COMMAND_NAME>
<COMMAND_CODES>EE120301FE0900</COMMAND_CODES>
</Command>
0xFE01
启动引导加载程序
EE120301FE0900
使用此xml尝试您的代码。在代码中使用xml文件的正确路径
顺便说一句,我已经用这个xml测试了你的代码,它工作得很好。你的
命令
类没有反映xml结构。缺少元素“COMMAND”。仍然存在问题。我将新节点添加到我的xml中并得到错误:根元素后面的文档中的标记必须格式正确这是我的新xml:0xFE01启动引导加载程序EE120301FE0900 0xFE02启动应用程序EE120302FE0900请参阅此,顺便说一句,您的xml结构错误您不能有多个根元素。