我想用以下格式在java中创建xml文件。
<xml>
<title>title</title>
<table>
<tr>
<td>
data
</td>
<td>
data
</td>
</tr>
</table>
</xml>
使用以下代码我得到的输出就像。
<xml>
<description>desc</description>
<keywords>key</keywords>
<linktext>alt</linktext>
<table>table</table>
<td>td</td>
<title>title</title>
<tr>tr</tr>
</xml>
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Xml {
String title,desc,key,link,table,tr,td;
public String getTitle() {
return title;
}
@XmlElement
public void setTitle(String title) {
this.title = title;
}
public String getDescription() {
return desc;
}
@XmlElement
public void setDescription(String desc) {
this.desc = desc;
}
public String getKeywords() {
return key;
}
@XmlElement
public void setKeywords(String key) {
this.key = key;
}
public String getLinktext() {
return link;
}
@XmlElement
public void setLinktext(String link) {
this.link = link;
}
public String getTable() {
return table;
}
@XmlElement
public void setTable(String table) {
this.table = table;
}
public String getTr() {
return tr;
}
@XmlElement
public void setTr(String tr) {
this.tr = tr;
}
public String getTd() {
return td;
}
@XmlElement
public void setTd(String td) {
this.td = td;
}
}
jaxbMarshaller.marshal(xml, file);
jaxbMarshaller.marshal(xml, System.out);
但上面的代码给出了这样的输出。但是如何在根节点之后创建子节点。 仅在xml标记中表示我想创建表作为子节点,在表节点下我想创建一个行作为子节点到表节点。怎么做。
答案 0 :(得分:1)
定义
@XmlType
class TableType {
@XmlElement(
RowType tr;
// ...
}
和
@XmlType
class RowType {
@XmlElement
ArrayList<String> td;
// ...
}
并在类Xml中,删除TableType和RowType中现在的内容,然后更改:
@XmlElement
TableType table;
定义XML模式并运行xjc以生成类通常要容易得多。