我遇到了Jaxb java类的实现问题。我的xml响应应该是:
combine.matrix <- matrix(gcDatalmFit$coefficients, eBgcData$coefficients, eBgcData$p.value, nrow = 45101, col = 16)
colnames(combine.matrix) <- col.names=c("GeneID",colnames(gcDatalmFit$coefficients), colnames(eBgcData$p.value), paste("p",colnames(eBgcData$coefficients))), sep=",")
#then save it
write.table(file="BLIMP1data.txt", combine.matrix, row.names=F)
这是我的java类:
<rootElement attr1="value1" attr2="value2">
<child> childValue </child>
</rootElement>
这是儿童:
@XmlRootElement
public class RootElement {
private String attr1;
private String attr2;
private Child child;
@XmlAttribute
public String getAttr1() {
return attr1;
}
public void setAttr1(String attr1) {
this.attr1 = attr1;
}
@XmlAttribute
public String getAttr2() {
return attr2;
}
public void setAttr2(String attr2) {
this.attr2 = attr2;
}
public void setChild(Child c) {
child = c;
}
@XmlElement
public Token getChild() {
return child;
}
}
我获得了这个xml:
public class Child {
private String child;
public Child() {
}
public void setChild(String child) {
this.child = child;
}
public String getChild() {
return child;
}
}
怎么了?
答案 0 :(得分:1)
为 RootElement 类的<child>
变量生成第一个child
。
第二个<child>
是针对 Child 类的child
变量生成的。
如果您可以确保儿童类中只有一个映射,则可以将@XmlAnyElement
添加到child
变量。 JAXP不会生成第二个<child>
元素。
public class Child {
@XmlAnyElement
private String child;
public Child() {
}
public void setChild(String child) {
this.child = child;
}
public String getChild() {
return child;
}
}