2017-03-02 2 views
1

まず、質問が明確でない場合は申し訳ありません。私はXStreamを使用してそのコンテンツを持つオブジェクトからXMLを作成しようとしています。XStreamを使用してオブジェクトのデータ部分をXMLに変換する方法は?

<Tag attr1 = "some_value" attr2 = "some_value"> CONTENT </Tag> 

私はトラブルクラスの設計を持っている:後

は私が達成しようとしているXMLの形式です。私は余分な<content>タグでXMLを取得

Tag tag = new Tag("Content"); 
tag.setAttr1("some_value"); 
tag.setAttr2("some_value"); 
XStream xStream = new XStream(); 
xStream.processAnnoations(Tag.class); 
System.out.println(xStream.toXML(tag)); 

@XStreamAlias("Tag") 
public class Tag { 

    @XStreamAsAttribute 
    private String attr1; 

    @XStreamAsAttribute 
    private String attr2; 

    private String content; 

    public Tag(String content) { 

    this.content = content; 
    } 

    // Getters for all three 

    // Setters for all three 
} 

を今、私は次の操作を実行したときに:後

は、私は今のところ、それを実装している方法です。私は余分な<content>タグを望んでいない、私は<Tag>の内容にしたい。 XStreamを使ってどうすればいいですか?

答えて

0

@XStreamConverter(value=ToAttributedValueConverter.class, strings={"content"})コンバータを追加するだけです。

@XStreamConverter(value=ToAttributedValueConverter.class, strings={"content"}) 
@XStreamAlias("Tag") 
public class Tag { 

    @XStreamAsAttribute 
    String attr1; 

    @XStreamAsAttribute 
    String attr2; 

    String content; 

    public Tag(String content) { 
    this.content = content; 
    } 


    public static void main(String[] args) { 
     Tag tag = new Tag("Content"); 
     tag.attr1 = "some_value"; 
     tag.attr2 = "some_value"; 
     XStream xStream = new XStream(); 
     xStream.processAnnotations(Tag.class); 
     System.out.println(xStream.toXML(tag)); 
    } 
} 
関連する問題