哪位仁兄知道或者写过ojbect2XML的api的进来一下了(在线等啊)

Philzzf 2004-11-29 11:52:07
大致是:
public static String object2XML(Object obj){
//返回对象的xml表现形式
return ..
}
有没有现成的API啊,急用啊
...全文
191 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
loverisyour 2004-12-02
  • 打赏
  • 举报
回复
whyxx(永远成不了高手)
给我发个呀,以后用得着
zhang_zhenjun@163.com
computersim 2004-12-02
  • 打赏
  • 举报
回复
学习
zcjl 2004-12-02
  • 打赏
  • 举报
回复
忘了说明import的类列表了:

import java.beans.BeanInfo;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.URLConnection;
...
zcjl 2004-12-02
  • 打赏
  • 举报
回复
摘录的一部分程序,生成结果是Element
楼主可以自己稍做改动就能实现你的目的
zcjl 2004-12-02
  • 打赏
  • 举报
回复
private Element serializeBean(Object bean) {
try {
return inspectBean(bean);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e.toString());
}
}

private Element inspectBean(Object bean)
throws
IntrospectionException,
IllegalAccessException,
InvocationTargetException {

BeanInfo info = Introspector.getBeanInfo(bean.getClass());
PropertyDescriptor[] properties = info.getPropertyDescriptors();
Element root = new Element(info.getBeanDescriptor().getName());

for (int i = 0; i < properties.length; i++) {
Class type = properties[i].getPropertyType();
String name = properties[i].getName();
Method m = properties[i].getReadMethod();
if (m != null) {
Object value = m.invoke(bean, null);
if (value == null)
value = new String("");
root = serializeProperty(name, value, root);
}
}
return root;
}

private Element serializeProperty(
String name,
Object value,
Element baseElement) {
try {
Class c = value.getClass();
Package p = c.getPackage();
if (value instanceof Collection) {
Collection col = (Collection) value;
Element list = new Element(name);
for (Iterator i = col.iterator(); i.hasNext();)
list = serializeProperty("item", i.next(), list);
baseElement.addContent(list);
} else if (value instanceof Map) {
Map col = (Map) value;
Element list = new Element(name);
for (Iterator i = col.keySet().iterator(); i.hasNext();) {
String keyName = (String) i.next();
list = serializeProperty(keyName, col.get(keyName), list);
}
baseElement.addContent(list);
} else if (p == null) {

} else if (p != null && p.getName().equals("java.lang")) {
Element e = new Element(name);
e.addContent(value.toString());
baseElement.addContent(e);
} else {
Element e = inspectBean(value);
baseElement.addContent(e);
}
} catch (Exception exc) {
exc.printStackTrace();
}
return baseElement;
}
禽兽v5 2004-12-02
  • 打赏
  • 举报
回复
没时间的话,可试试hibernate的extend tools的CodeGeneration。在ant中可以用hbm2javaTask
whyxx 2004-12-02
  • 打赏
  • 举报
回复
刚写了一个,留个信箱发给你
loverisyour 2004-12-02
  • 打赏
  • 举报
回复
呵呵,这么久都没人来呀,楼主把分散了算拉,你又拿不回去,还不如给兄弟们高兴高兴,大家以后互相关照呀!
drugon 2004-12-01
  • 打赏
  • 举报
回复
到www.infoxa.com去看一下,那里书很多,我不知道有没有!
loverisyour 2004-11-30
  • 打赏
  • 举报
回复
没分发帖拉,所以借楼主的地方,请见谅!
loverisyour 2004-11-30
  • 打赏
  • 举报
回复
在J2ME里面我开始是用的KXML来解析XML,后来发现性能不怎么样,现在处理是自己把对象Serializa化,就是一个桌面程序用Castor来读XML,在用自己写的Serializa类来把XML里面的资源write成一个文件,J2ME程序就有个read方法来读这文件,不知道这样处理行不行,请大虾指教一下,不过速度倒是快了不少。
loverisyour 2004-11-29
  • 打赏
  • 举报
回复
我跟你的要求相反,我需要XML2OBJECT,就象Castor,想知道它是怎么实现的
fjw3699 2004-11-29
  • 打赏
  • 举报
回复
用JAXB中的Marshaller和Unmarshaller试试
Philzzf 2004-11-29
  • 打赏
  • 举报
回复
up

62,610

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧