simple-xml使用

1 添加依赖

<dependency>
<groupId>org.simpleframework</groupId>
<artifactId>simple-xml</artifactId>
<version>2.7.1</version>
</dependency>

2 Domain1.java



import java.util.ArrayList;
import java.util.List;

import org.simpleframework.xml.Element;
import org.simpleframework.xml.ElementList;
import org.simpleframework.xml.Root;

@Root(name="domain")
public class Domain1 {
@Element(name = "domain-id",required = false)
private String domainId;

@Element(name = "domain-name",required = false)
private String domainName;

@Element(name = "cname",required = false)
private String cname;

@Element(name = "enabled",required = false)
private boolean enabled;

@ElementList(name="cache-behaviors" , type = CacheBehavior.class, required = false)
private List<CacheBehavior> cacheBehaviors;

public void setDomainId(String domainId) {
this.domainId = domainId;
}

public String getDomainId() {
return domainId;
}

public void setDomainName(String domainName) {
this.domainName = domainName;
}

public String getDomainName() {
return domainName;
}

public String getCname() {
return cname;
}

public void setCname(String cname) {
this.cname = cname;
}
public boolean isEnabled() {
return enabled;
}

public void setEnabled(boolean enabled) {
this.enabled = enabled;
}

public void addCacheBehavior(CacheBehavior item) {
if (cacheBehaviors == null) {
cacheBehaviors = new ArrayList<CacheBehavior>();
}
cacheBehaviors.add(item);
}

public List<CacheBehavior> getCacheBehaviors() {
return cacheBehaviors;
}

public void setCacheBehaviors(List<CacheBehavior> cacheBehaviors) {
this.cacheBehaviors = cacheBehaviors;
}



3 CacheBehavior.java



import org.simpleframework.xml.Element;
import org.simpleframework.xml.Root;

@Root(name="cache-behavior")
public class CacheBehavior {
@Element(name = "path-pattern",required = false)
private String pathPattern;

@Element(name = "ignore-cache-control",required = false)
private Boolean ignoreCacheControl;

@Element(name = "cache-ttl",required = false)
private long cacheTtl = -1;

@Element(name = "cache-unit",required = false)
private String cacheUnit="s";

@Element(name = "priority",required = false)
private Integer priority;

public String getPathPattern() {
return pathPattern;
}

public void setPathPattern(String pathPattern) {
this.pathPattern = pathPattern;
}

public Boolean isIgnoreCacheControl() {
return ignoreCacheControl;
}

public void setIgnoreCacheControl(boolean ignoreCacheControl) {
this.ignoreCacheControl = ignoreCacheControl;
}

public long getCacheTtl() {
return cacheTtl;
}

public void setCacheTtl(long cacheTtl) {
if(cacheTtl < 0){
cacheTtl = 0;
}
this.cacheTtl = cacheTtl;
}

public String getCacheUnit() {
return cacheUnit;
}

public void setCacheUnit(String cacheUnit) {
this.cacheUnit = cacheUnit;
}

public Integer getPriority() {
return priority;
}

public void setPriority(Integer priority) {
this.priority = priority;
}


}


4 TestDomain1.java


import java.io.ByteArrayOutputStream;

import org.simpleframework.xml.Serializer;
import org.simpleframework.xml.core.Persister;


public class TestDomain1 {
public static void main(String[] args) {
Domain1 domain = new Domain1();
domain.setDomainName("http://baidu.com");

CacheBehavior cache = new CacheBehavior();
cache.setPathPattern("jpg;gif");
cache.setCacheTtl(10);
cache.setIgnoreCacheControl(false);
cache.setPathPattern("/(i|i2)/.*\\.(jpg|jpg2)");
domain.addCacheBehavior(cache);
domain.addCacheBehavior(cache);

Serializer serializer = new Persister();
try{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
serializer.write(domain, baos);
String xml = baos.toString("UTF-8");
System.out.println(xml);

Domain1 domain1 = serializer.read(Domain1.class,xml);
System.out.println(domain1.getDomainName());
}catch(Exception e){
e.printStackTrace();
}
}


5 输出结果

<domain>
<domain-name>http://baidu.com</domain-name>
<enabled>false</enabled>
<cache-behaviors class="java.util.ArrayList">
<cache-behavior>
<path-pattern>/(i|i2)/.*\.(jpg|jpg2)</path-pattern>
<ignore-cache-control>false</ignore-cache-control>
<cache-ttl>10</cache-ttl>
<cache-unit>s</cache-unit>
</cache-behavior>
<cache-behavior>
<path-pattern>/(i|i2)/.*\.(jpg|jpg2)</path-pattern>
<ignore-cache-control>false</ignore-cache-control>
<cache-ttl>10</cache-ttl>
<cache-unit>s</cache-unit>
</cache-behavior>
</cache-behaviors>
</domain>
http://baidu.com



6 结论
为啥会多个class="java.util.ArrayList",各种尝试无法去掉,有了解的道友请告诉我一下,谢谢!

<cache-behaviors class="java.util.ArrayList">
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值