XmlParser.java
上传用户:damzkj
上传日期:2022-01-07
资源大小:24k
文件大小:1k
源码类别:

P2P编程

开发平台:

Java

  1. package jxtamessenger.xml;
  2. import java.lang.reflect.Method;
  3. import java.util.Iterator;
  4. import java.util.logging.Logger;
  5. import org.apache.commons.lang.ClassUtils;
  6. import org.apache.commons.lang.StringUtils;
  7. import org.dom4j.Document;
  8. import org.dom4j.DocumentException;
  9. import org.dom4j.DocumentHelper;
  10. import org.dom4j.Element;
  11. public class XmlParser {
  12. private static final Logger LOG = Logger.getLogger(XmlParser.class.getName());
  13. @SuppressWarnings("unchecked")
  14. public static Object getObject(String xml) {
  15. Object o = null;
  16. try {
  17. Document document = DocumentHelper.parseText(xml);
  18. Element root = document.getRootElement();
  19. try {
  20. Class c = ClassUtils.getClass(root.attributeValue("class"));
  21. o = c.newInstance();
  22.         for (Iterator i = root.elementIterator(); i.hasNext(); ) {
  23.             Element element = (Element) i.next();
  24.             
  25.             Method method = c.getDeclaredMethod("set" + StringUtils.capitalize(element.getName()), new Class[] {String.class});
  26.             method.invoke(o, element.getText());
  27.         }
  28.         return o;
  29. } catch (Exception e) {
  30. LOG.warning("Class initialize failed!");
  31. e.printStackTrace();
  32. return null;
  33. }
  34. } catch (DocumentException e) {
  35. LOG.warning("getOnlineMsg() failed");
  36. e.printStackTrace();
  37. }
  38. return null;
  39. }
  40. }