xml操作工具分享-描述篇

    准备介绍一个操作xml的工具,由于代码太长,逻辑有点复杂。所以分2篇文章介绍,这里先介绍本工具实现的主要功能。

本工具在webservice系统间通信时尤为有用。

其主要有2个用途:

  1)  根据xml字符串转相应java对象,支持list属性层级和普通属性层级

  2)  根据java对象转相应的xml字符串,支持嵌套转xml

  先给出简单的说明例子,比如:

  假设我们已经定义了一个学生类Student,有属性id,name,bir,age及相应的get,set方法,有相应xml字符串,

 "<Student age=/"10/">"+
      "<NAME>hhh</NAME>"+
      "<ID></ID>"+
      "<BIR></BIR>"+
  "</Student>"

现在来看我们的简单工具是怎么使用的?,够不够简单?呵呵

 

用途1: 对于给定xml转java对象

 

    使用代码如下,

    String xml="<Student age=/"10/">"+
                       "<NAME>hhh</NAME>"+
                       "<ID></ID>"+
                       "<BIR></BIR>"+
                  "</Student>";
  Student s=new Student();

  //共有3个参数
  s = (Student) XmlUtil.createTarget(xml, s, null);
  System.out.println(s.toString());

  参数说明,参数1,2很明了。

  参数3:截断表达式字符串,有时xml协议会有许多的头结点信息,我们可以直接从我们关心的节点开始截取进行

解析成java对象 举个例子如下,

   

 

    String xml="<XML><DATA><Student age=/"10/">"+
                       "<NAME>hhh</NAME>"+
                       "<ID></ID>"+
                       "<BIR></BIR>"+
                  "</Student>"+

                  "</DATA></XML>";
  Student s=new Student();

  //共有3个参数
  s = (Student) XmlUtil.createTarget(xml, s, "//DATA/");//表示截取DATA结点下的xml字符串转对象
  System.out.println(s.toString());

 

 

用途2:对于给对象,将其转化为具有层级关系的xml字符串,并且属性age属于相应的节点

    Student s=new Student();
    s.setAge("10");
    s.setName("hhh");

    String xml = XmlUtil.createXml(s);
    System.out.println(xml);

   结果同上的xml。

工具不错吧,你只需提供你的javabean和xml,那么利用本工具只需一行代码即可完成相互转化。

完整的测试代码如下(xml操作工具分享-实现篇) 

 

import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.*; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Ignore; import org.junit.Test; import XMLHandler.xmlopt.util.XmlUtil; import XMLHandler.xmlutil.test.School; public class TestXml { @BeforeClass public static void setUpBeforeClass() throws Exception { } @AfterClass public static void tearDownAfterClass() throws Exception { } @Ignore @Test public void testObj2Xml() { Student s=new Student(); s.setAge("10"); s.setName("hhh"); String xml = XmlUtil.createXml(s); System.out.println(xml); } //@Ignore @Test public void testXml2Obj() throws UnsupportedEncodingException { String xml="<xml><Student age=/"10/">"+ "<NAME>hhh</NAME>"+ "<ID></ID>"+ "<BIR></BIR>"+ "</Student></xml>"; Student s=new Student(); s = (Student) XmlUtil.createTarget(xml, s, "//xml/"); //如果xml节点没有,第三个参数需要给null值 System.out.println(s.getName()); } }

 

你可能感兴趣的:(java,xml,exception,String,webservice,工具)