2014-06-15 6 views
0

Je veux créer un fichier XML en Java avec le format suivant. En utilisant le code suivant, je reçois un résultat similaire àcréer un fichier xml en Java en utilisant jaxb

<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); 

mais le code ci-dessus donne une sortie comme celle-ci. mais comment créer un nœud enfant après le nœud racine. signifie dans la balise xml seulement je veux créer une table en tant qu'enfant et sous le noeud de la table je veux créer une ligne en tant que nœud enfant à table nœud. comment faire ça

+0

http://docs.oracle.com/javaee/5/tutorial/doc/bnbcv.html#bnbcw. Ici vous aurez des exemples pour Java à Schema Marshaller. J'espère que cela aide! – JSR

Répondre

1

Définir un

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

et

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

et en classe Xml, enlever ce qui est maintenant dans TableType et RowType, et le changement:

@XmlElement 
TableType table; 

Il est généralement beaucoup plus facile pour définir un schéma XML et lancer xjc pour générer les classes.

+0

Je reçois l'erreur: ne peut pas trouver le symbole @XmlType – user3201607

+0

ok cela fonctionne après l'importation xmltype – user3201607

Questions connexes