xml解析工具类

来源:互联网 发布:现金赌博软件手机软件 编辑:程序博客网 时间:2024/05/17 16:55

/**
* 类 名: XmlUtils
* 描 述: xml解析工具类 xml解析需要一个jar包xstream-1.4.7
*/
public class XmlUtils {
private final static String TAG = XmlUtils.class.getSimpleName();
//将一个xml流转换为bean实体类
@SuppressWarnings(“unchecked”)
public static T toBean(Class type, InputStream is) {
XStream xmStream = new XStream(new DomDriver(“UTF-8”));
// 设置可忽略为在javabean类中定义的界面属性
xmStream.ignoreUnknownElements();
xmStream.registerConverter(new MyIntCoverter());
xmStream.registerConverter(new MyLongCoverter());
xmStream.registerConverter(new MyFloatCoverter());
xmStream.registerConverter(new MyDoubleCoverter());
xmStream.processAnnotations(type);
T obj = null;
try {
obj = (T) xmStream.fromXML(is);
} catch (Exception e) {
TLog.log(TAG, “解析xml发生异常:” + e.getMessage());
} finally {
if (null != is) {
try {
is.close();
} catch (IOException e) {
TLog.log(TAG, “关闭流出现异常:” + e.getMessage());
}
}
}
return obj;
}

public static <T> T toBean(Class<T> type, byte[] bytes) {    if (bytes == null) return null;    return toBean(type, new ByteArrayInputStream(bytes));}private static class MyIntCoverter extends IntConverter {    @Override    public Object fromString(String str) {        int value;        try {            value = (Integer) super.fromString(str);        } catch (Exception e) {            value = 0;        }        return value;    }    @Override    public String toString(Object obj) {        return super.toString(obj);    }}private static class MyLongCoverter extends LongConverter {    @Override    public Object fromString(String str) {        long value;        try {            value = (Long) super.fromString(str);        } catch (Exception e) {            value = 0;        }        return value;    }    @Override    public String toString(Object obj) {        return super.toString(obj);    }}private static class MyFloatCoverter extends FloatConverter {    @Override    public Object fromString(String str) {        float value;        try {            value = (Float) super.fromString(str);        } catch (Exception e) {            value = 0;        }        return value;    }    @Override    public String toString(Object obj) {        return super.toString(obj);    }}private static class MyDoubleCoverter extends DoubleConverter {    @Override    public Object fromString(String str) {        double value;        try {            value = (Double) super.fromString(str);        } catch (Exception e) {            value = 0;        }        return value;    }    @Override    public String toString(Object obj) {        return super.toString(obj);    }}

}