任何人都可以帮我解决这个JAXB解组问题吗?
所以,这是我正在使用的文件employee.xml:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<parent>
<anotherchild1>Another</anotherchild1>
</parent>
这是具有JAXB注释的Parent.java类:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package XMLToObject;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
/**
*
* @author Gauravb
*/
@XmlRootElement
public class Parent {
private String child;
private String anotherchild1;
public String getAnotherChild1() {
return anotherchild1;
}
public void setAnotherChild1(String child) {
this.anotherchild1 = anotherchild1;
}
}
这是我正在使用的XMLToObject.java文件:
package XMLToObject;
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author Gauravb
*/
import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
public class XMLToObject {
public static void main(String[] args) {
try {
File file = new File("employee.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(Parent.class);
System.out.println("Reading....."+file.getAbsolutePath());
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
Parent p = (Parent) jaxbUnmarshaller.unmarshal(file);
//System.out.println("Child:"+p.getChild());
System.out.println("Another Child:"+p.getAnotherChild1());
} catch (JAXBException e) {e.printStackTrace(); }
}
}
现在,我的问题是当我运行XMLToObject.java文件时,我看到以下内容:
Reading.....C:\xxxxxx\employee.xml
Another Child:null
那么,任何人都可以告诉我这个价值背后的原因是什么?
请注意: 我是JAXB的新手 2.我在运行代码时使用Netbeans编辑器 3.我没有XML的XSD,也不想使用任何我的学习 4.我现在不想使用MOXy,这是我接下来要学习的东西
答案 0 :(得分:0)
您忘记在绑定类Parent.java中添加@XmlElement批注,如下所示
@XmlElement
private String anotherchild1;