2014-06-15 41 views
0

我想用以下格式在java中創建xml文件。使用jaxb在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

http://docs.oracle.com/javaee/5/tutorial/doc/bnbcv.html#bnbcw。在這裏,您將擁有Java到Schema Marshaller的示例。希望能幫助到你! – JSR

回答

1

定義

@XmlType 
class TableType { 
    @XmlElement(
    RowType tr; 
    // ... 
} 

@XmlType 
class RowType { 
    @XmlElement 
    ArrayList<String> td; 
    // ... 
} 

,並在類XML,刪除什麼現在是在TABLETYPE和行類型,並更改:

@XmlElement 
TableType table; 

它通常是更容易定義一個XML模式並運行xjc來生成這些類。

+0

我收到錯誤:無法找到符號@XmlType – user3201607

+0

確定它在導入xmltype後工作 – user3201607