我有一个 XML 文件,我正在尝试对其进行解组,但我不知道如何执行此操作。
XML 看起来像
<config>
<params>
<param>
<a>draft</a>
<b>Serial</b>
</param>
<param>
<a>amt</a>
<b>Amount</b>
</param>
</params>
<server>
<scheme>http</scheme>
<host>somehost.com/asdf</host>
</server>
</config>
当我将 params 作为根元素并且没有服务器元素或配置作为根元素时,我以前可以进行解组。
我添加了一个配置类来尝试解组它,但我不知道哪里出错了。
我的课程看起来像
@XmlRootElement
public class Config {
private Params params = new Params();
@XmlElement(name="params")
public Params getParams() {
return params;
}
public void setParam(Params params) {
this.params = params;
}
}
public class Params {
private List<Param> params = new ArrayList<Param>();
public List <Param> getParam() {
return params;
}
public void setParam(List<Param> params) {
this.params = params;
}
}
public class Param {
String a;
String b;
//getters and setters. omitted for brevity
}
解组代码
File file = new File("C:\\config.xml");
InputStream inputStream = new FileInputStream(file);
JAXBContext jc = JAXBContext.newInstance(Config.class);
Unmarshaller u = jc.createUnmarshaller();
conf = (Config) u.unmarshal(file);
System.out.println(conf.getParams().getParam().size());
println 打印 0。我哪里出错了?
我知道我还没有任何服务器节点的代码,还没有到达那里。我的实际 XML 还没有该节点,而且我仍然无法让它在 config 标记内正确解组参数。
您只需要进行以下更改,它就会起作用。将 Config 中的 setParams 方法更改为
@XmlElement(name = "params") //<--Annotation added here
public void setParam(Params params) {
this.params = params;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)