TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
因为需要在android手机上面解析xml,而现有的xml库大多都比较大,而且我需要的功能也比较少,所以就自己实现了一个。同时也熟悉了一下注解的运用,这个工具就只有两个功能: 1.将javabean转换成String类型的对象以便网络传输 2.将String类型对象转换成javabean以便操作方便 所有代码只有4个类,代码我就不贴了,发一下测试代码,想研究的可以下载来看看 package test;
import java.util.ArrayList;
import cn.infogiga.util.xml.XMLBean;
import cn.infogiga.util.xml.XMLElement;
import cn.infogiga.util.xml.XMLField;
import cn.infogiga.util.xml.XMLTypes;
/**
* value表示这个节点名称 type=XMLTypes.XML_ROOT表示这是根节点
* 如果不是根节点 输出的xml没有xml头:<?xml version="1.0" encoding="UTF-8"?>
* @author cindy
*/
@XMLElement(value="BeanA",type=XMLTypes.XML_ROOT)
public class BeanA extends XMLBean{
/**
* value表示节点名称,XMLTypes.XML_ELEMENT表示这是普通节点
*/
@XMLField(value="Field1",xmlType=XMLTypes.XML_ELEMENT)
private String flied1;
@XMLField(value="Field2",xmlType=XMLTypes.XML_ELEMENT)
private String fleld2;
@XMLField(value="Field3",xmlType=XMLTypes.XML_ELEMENT)
private String field3;
/**
* xmlType=XMLTypes.XML_LIST表示这是多个重复节点,这里一定要是ArrayList 如果是List则会报错
* 如果xmlType=XMLTypes.XML_LIST 那么mClass=BeanB.class 这个一定要添加,初始化是需要用到,没有什么意义
* 如果value="beanBs"省略则输出的xml将会有变化:
* 有value="beanBs"输出的字符串:
* <?xml version="1.0" encoding="UTF-8"?>
<BeanA>
<Field1>111111</Field1>
<Field2>222222</Field2>
<beanBs>
<BeanB>
<Field1>b33333</Field1>
</BeanB>
<BeanB>
<Field1>b44444</Field1>
</BeanB>
</beanBs>
</BeanA>
* 没有value="beanBs"输出的字符串:
<?xml version="1.0" encoding="UTF-8"?>
<BeanA>
<Field1>111111</Field1>
<Field2>222222</Field2>
<Field3>333333</Field3>
<BeanB>
<str2>b33333</str2>
</BeanB>
<BeanB>
<str2>b44444</str2>
</BeanB>
</BeanA>
*/
@XMLField(value="beanBs",xmlType=XMLTypes.XML_LIST,mClass=BeanB.class)
private ArrayList<BeanB> beanBs;
public ArrayList<BeanB> getBeanBs() {
return beanBs;
}
public void setBeanBs(ArrayList<BeanB> beanBs) {
this.beanBs = beanBs;
}
public String getFlied1() {
return flied1;
}
public void setFlied1(String flied1) {
this.flied1 = flied1;
}
public String getFleld2() {
return fleld2;
}
public void setFleld2(String fleld2) {
this.fleld2 = fleld2;
}
public String getField3() {
return field3;
}
public void setField3(String field3) {
this.field3 = field3;
}
}
[/code] package test;
import cn.infogiga.util.xml.XMLBean;
import cn.infogiga.util.xml.XMLElement;
import cn.infogiga.util.xml.XMLField;
import cn.infogiga.util.xml.XMLTypes;
@XMLElement(value="BeanB",type=XMLTypes.XML_UNROOT)
public class BeanB extends XMLBean{
@XMLField(value="str2",xmlType=XMLTypes.XML_ELEMENT)
private String str2;
public String getStr2() {
return str2;
}
public void setStr2(String str2) {
this.str2 = str2;
}
}
[/code] package test;
import java.util.ArrayList;
import java.util.List;
public class TestMain2 {
/**
* @param args
*/
public static void main(String[] args) {
BeanA ba = new BeanA();
ba.setFlied1("111111");
ba.setFleld2("222222");
ba.setField3("333333");
ArrayList<BeanB> bList = new ArrayList<BeanB>();
BeanB b = new BeanB();
b.setStr2("b33333");
bList.add(b);
BeanB c = new BeanB();
c.setStr2("b44444");
bList.add(c);
ba.setBeanBs(bList);
System.out.println(ba.toString());
}
} [/code] package test;
import java.util.ArrayList;
public class TestMain3 {
/**
* @param args
*/
public static void main(String[] args) {
/*// TODO Auto-generated method stub
BeanA beanA = new BeanA();
beanA.getBeanBs().getClass();*/
String xml = "<?xml version="1.0" encoding="UTF-8"?>
<BeanA><Field1>111111</Field1><Field2>222222</Field2><Field3>333333</Field3><beanBs>
<BeanB><str2>b33333</str2></BeanB><BeanB><str2>b44444</str2></BeanB></beanBs></BeanA>";
BeanA beanA = new BeanA();
try {
beanA.parse(xml);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(beanA.getFlied1());
System.out.println(beanA.getFleld2());
System.out.println(beanA.getField3());
ArrayList<BeanB> l = beanA.getBeanBs();
if(l != null){
for(int i=0;i<l.size();i++){
BeanB b = l.get(i);
System.out.println(b.getStr2());
}
}
}
}
[/code] 添加了点简单的注释
源码下载:http://file.javaxxz.com/2014/10/10/005830187.rar |
|