繁体   English   中英

如何使用XStream将对象的数据部分转换为XML?

[英]How to convert data part of an object into XML using XStream?

首先,如果问题不明确,我很抱歉。 我正在尝试使用XStream在对象中创建XML及其内容。

以下是我想要实现的XML形式:

<Tag attr1 = "some_value" attr2 = "some_value"> CONTENT </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
}

现在,当我执行以下操作时:

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

我使用额外的<content>标记获取XML。 我不想要额外的<content>标签,我希望它是<Tag>的内容。 我如何使用XStream做到这一点?

只需添加@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));
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM