下面是一个简单的例子
package com.yydone.dto;
import java.io.Serializable;
import java.util.List;
public class ItemInfoDto implements Serializable {
private static final long serialVersionUID = 1L;
private Integer itemCount;
private List<ItemDto> itemList;
public Integer getItemCount() {
return itemCount;
}
public void setItemCount(Integer itemCount) {
this.itemCount = itemCount;
}
public List<ItemDto> getItemList() {
return itemList;
}
public void setItemList(List<ItemDto> itemList) {
this.itemList = itemList;
}
}
package com.yydone.dto;
import java.io.Serializable;
import java.math.BigDecimal;
public class ItemDto implements Serializable {
private static final long serialVersionUID = 1L;
private String itemProductName;
private BigDecimal itemUnitPrice;
private Integer itemQuantity;
public String getItemProductName() {
return itemProductName;
}
public void setItemProductName(String itemProductName) {
this.itemProductName = itemProductName;
}
public BigDecimal getItemUnitPrice() {
return itemUnitPrice;
}
public void setItemUnitPrice(BigDecimal itemUnitPrice) {
this.itemUnitPrice = itemUnitPrice;
}
public Integer getItemQuantity() {
return itemQuantity;
}
public void setItemQuantity(Integer itemQuantity) {
this.itemQuantity = itemQuantity;
}
}
package com.test.util;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.junit.Test;
import com.yydone.dto.ItemDto;
import com.yydone.dto.ItemInfoDto;
import com.thoughtworks.xstream.XStream;
public class TestXmlUtil {
@Test
public void parse() {
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
"<ItemInfo>" +
" <ItemCount>2</ItemCount>" +
" <ItemList>" +
" <Item>" +
" <ItemProductName>商品1</ItemProductName>" +
" <ItemUnitPrice>5.63</ItemUnitPrice>" +
" <ItemQuantity>1</ItemQuantity>" +
" </Item>" +
" <Item>" +
" <ItemProductName>商品2</ItemProductName>" +
" <ItemUnitPrice>8.36</ItemUnitPrice>" +
" <ItemQuantity>2</ItemQuantity>" +
" </Item>" +
" </ItemList>" +
"</ItemInfo>";
XStream xStream = new XStream();
xStream.alias("ItemInfo", ItemInfoDto.class);
xStream.alias("Item", ItemDto.class);
xStream.aliasField("ItemCount", ItemInfoDto.class, "itemCount");
xStream.aliasField("ItemList", ItemInfoDto.class, "itemList");
xStream.aliasField("ItemProductName", ItemDto.class, "itemProductName");
xStream.aliasField("ItemUnitPrice", ItemDto.class, "itemUnitPrice");
xStream.aliasField("ItemQuantity", ItemDto.class, "itemQuantity");
ItemInfoDto dto = (ItemInfoDto)xStream.fromXML(xml);
System.out.println(ToStringBuilder.reflectionToString(dto));
}
}
需要依赖的 xml的pom为:
<dependency> <groupId>xstream</groupId> <artifactId>xstream</artifactId> <version>1.2.2</version> </dependency>