解析XML在项目中是经常需要使用到的,今天在这里为大家介绍怎么用simpleframework解析XML文件
需要一个架包 simple-xml.2.7.1.jar (如果没有该架包的同学可以上网自行搜索下载)
解析该xml文件为例
?xml version="1.0" encoding="UTF-8"?>
<items>
<totalResults>1</totalResults>
<totalResultsAll>1</totalResultsAll>
<Rows>
<productCategory>14664</productCategory>
<sortName>针织衫</sortName>
<productBrand>999999</productBrand>
<BrandName>ESP</BrandName>
<productID>AE050</productID>
<productName>女装EDC针织衫</productName>
<color/>
<sizeNo/>
<saleNum>0.000</saleNum>
</Rows>
<Rows>
<productCategory>14662</productCategory>
<sortName>针织衫1</sortName>
<productBrand>9999990</productBrand>
<BrandName>ESP0</BrandName>
<productID>AE0501</productID>
<productName>女装EDC针织衫1</productName>
<color>红色</color>
<sizeNo>中</sizeNo>
<saleNum>0.000</saleNum>
</Rows>
</items>
接下来我们需要编写我们的XML映射实体类
Items.java
import java.util.List;
import org.simpleframework.xml.Element;
import org.simpleframework.xml.Root;
@Root(name = "items")
public class Items {
@Element(name = "totalResults", required = false)
private String totalResults;
@Element(name = "totalResultsAll", required = false)
private String totalResultsAll;
@Element(name = "Rows", required = false)
private List<Rows> rows;
public String getTotalResults() {
return totalResults;
}
public void setTotalResults(String totalResults) {
this.totalResults = totalResults;
}
public String getTotalResultsAll() {
return totalResultsAll;
}
public void setTotalResultsAll(String totalResultsAll) {
this.totalResultsAll = totalResultsAll;
}
public List<Rows> getRows() {
return rows;
}
public void setRows(List<Rows> rows) {
this.rows = rows;
}
}
import org.simpleframework.xml.Element;
import org.simpleframework.xml.Root;
@Root(name = "Rows")
public class Rows {
@Element(name = "productCategory", required = false)
private String productCategory;
@Element(name = "sortName", required = false)
private String sortName;
@Element(name = "productBrand", required = false)
private String productBrand;
@Element(name = "productID", required = false)
private String productID;
@Element(name = "productName", required = false)
private String productName;
@Element(name = "color", required = false)
private String color;
@Element(name = "sizeNo", required = false)
private String sizeNo;
@Element(name = "saleNum", required = false)
private String saleNum;
public String getProductCategory() {
return productCategory;
}
public void setProductCategory(String productCategory) {
this.productCategory = productCategory;
}
public String getSortName() {
return sortName;
}
public void setSortName(String sortName) {
this.sortName = sortName;
}
public String getProductBrand() {
return productBrand;
}
public void setProductBrand(String productBrand) {
this.productBrand = productBrand;
}
public String getProductID() {
return productID;
}
public void setProductID(String productID) {
this.productID = productID;
}
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getSizeNo() {
return sizeNo;
}
public void setSizeNo(String sizeNo) {
this.sizeNo = sizeNo;
}
public String getSaleNum() {
return saleNum;
}
public void setSaleNum(String saleNum) {
this.saleNum = saleNum;
}
}
测试类
public static void main(String[] args) {
Format format = new Format("<?xml version=\"1.0\" encoding= \"UTF-8\" ?>");
Serializer serializer = new Persister(format);
Items resultModel = null; // xml映射实体类
resultModel = serializer.read(Items.class, "xml字符串文件");
resultModel.getRows();
resultModel.getTotalResults();
resultModel.getTotalResultsAll();
}