是否有组件或者好办法 xml 转换成 JavaBean ? 比较复杂的xml?
自己转吧! 别人下的 不一定适合自己的 需求和情况!
自己动手丰衣足食!
http://www.cnblogs.com/sunsonbaby/archive/2004/12/17/78623.html
[code="java"]import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import com.wutka.jox.JOXBeanInputStream;
import com.wutka.jox.JOXBeanOutputStream;
public class BeanXMLMapping {
/** *//**
* Retrieves a bean object for the
* received XML and matching bean class
*/
public static Object fromXML(String xml, Class className) {
ByteArrayInputStream xmlData = new ByteArrayInputStream(xml.getBytes());
JOXBeanInputStream joxIn = new JOXBeanInputStream(xmlData);
try {
return (Object) joxIn.readObject(className);
} catch (IOException exc) {
exc.printStackTrace();
return null;
} finally {
try {
xmlData.close();
joxIn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
/** *//**
* Returns an XML document.nbspString for the received bean
*/
public static String toXML(Object bean) {
ByteArrayOutputStream xmlData = new ByteArrayOutputStream();
JOXBeanOutputStream joxOut = new JOXBeanOutputStream(xmlData);
try {
joxOut.writeObject(beanName(bean), bean);
return xmlData.toString();
} catch (IOException exc) {
exc.printStackTrace();
return null;
} finally {
try {
xmlData.close();
joxOut.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
/** *//**
* Find out the bean class name
*/
private static String beanName(Object bean) {
String fullClassName = bean.getClass().getName();
String classNameTemp = fullClassName.substring(
fullClassName.lastIndexOf(".") + 1,
fullClassName.length()
);
return classNameTemp.substring(0, 1)
+ classNameTemp.substring(1);
}
public static void main(String[] args) {
String content = "<WebAppPolicy lcid=\"1033\"><WebAppPolicyZones><WebAppPolicyZone zonename=\"(All zones)\"/>"
+ "<WebAppPolicyZone zonename=\"Default\"/></WebAppPolicyZones></WebAppPolicy>";
// System.out.println(content);
Object obj = fromXML(content, WebAppPolicy.class);
WebAppPolicy web = (WebAppPolicy) obj;
System.out.println(web.getLcid());
System.out.println(((WebAppPolicy)obj).getLcid());
System.out.println(((WebAppPolicy)obj).getWebAppPolicyZones().getWebAppPolicyZone()[0].getZonename());
System.out.println(((WebAppPolicy)obj).getWebAppPolicyZones().getWebAppPolicyZone()[1].getZonename());
}
} [/code]
http://dev.firnow.com/course/4_webprogram/xml/xml_js/200863/121326.html 这个也挺好的
使用xstream很简单啊。
这个博客[url]http://lavasoft.blog.51cto.com/62575/65360[/url]看看,就几句话!
用Castor引擎:运用Castor引擎实现XML结构的字符串->JavaBean的映射
可以参考我的文章
http://lerous.iteye.com/blog/250335