`
w0rchid
  • 浏览: 11999 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

betwixt解析xml

 
阅读更多
package com.huawei.t0901_betwixt;

import java.beans.IntrospectionException;
import java.io.File;
import java.io.IOException;

import org.apache.commons.betwixt.io.BeanReader;
import org.xml.sax.SAXException;

public class TestMain
{
    // 请求文件地址
    private static final String PATH = "src/userReq.xml";
   
    // 实体类
    private static final String BEAN_CLASS = "com.huawei.t0901_betwixt.UserReq";
   
    public static void main(String[] args)
        throws ClassNotFoundException, IntrospectionException, IOException, SAXException
    {
        BeanReader reader = new BeanReader();
       
        Class clazz = Class.forName(BEAN_CLASS);
       
        UserReq uq = (UserReq) parseXml(clazz,reader);
       
        for (User u : uq.getUser())
        {
            System.out.println(u + "\n-----------");
        }
    }

    private static Object parseXml(Class clazz, BeanReader reader)
        throws IntrospectionException, IOException, SAXException
    {
        // 注册
        reader.registerBeanClass(clazz);
       
        // 解析xml
        return reader.parse(new File(PATH));
    }
}
------------------------User-------------------------
package com.huawei.t0901_betwixt;

public class User
{
    // 姓名
    private String name = "--";
   
    // 电话
    private String tel;
   
    // 性别
    private String sex;
   
    // 地址
    private String address;
   
    /**
     * 默认构造函数
     */
    public User()
    {
    }

    public String getName()
    {
        return name;
    }

    public void setName(String name)
    {
        this.name = name;
    }

    public String getTel()
    {
        return tel;
    }

    public void setTel(String tel)
    {
        this.tel = tel;
    }

    public String getSex()
    {
        return sex;
    }

    public void setSex(String sex)
    {
        this.sex = sex;
    }

    public String getAddress()
    {
        return address;
    }

    public void setAddress(String address)
    {
        this.address = address;
    }
   
    @Override
    public String toString()
    {
        return "姓名:" + name + "\n性别:" + (sex.equalsIgnoreCase("M") ? "男" : "女")
            + "\n联系电话:" + tel + "\n家庭地址:" + address;
    }
   
}
--------------------UserReq----------------------
package com.huawei.t0901_betwixt;

import java.util.ArrayList;
import java.util.List;

/**
* 用户请求
*
* @author  chenglia
* @version  [版本号, 2011-9-1]
* @see  [相关类/方法]
* @since  [产品/模块版本]
*/
public class UserReq
{
    // 用户
    private List<User> user = new ArrayList<User>();
   
    /**
     * 默认构造函数
     */
    public UserReq()
    {
    }
   
    public List<User> getUser()
    {
        return user;
    }
   
    public void setUser(List<User> user)
    {
        this.user = user;
    }
   
    public void addUser(User u)
    {
        user.add(u);
    }
}
--------------------userReq.bewixt-----------
<info primitiveTypes="element">
    <element name="userReq">
        <element name="user" property="user" updater="addUser" />
        <addDefaults/>
    </element>
</info>
----------------------user.bewixt-------------
<info primitiveTypes="element">
    <element name="user">
        <addDefaults/>
    </element>
</info>
分享到:
评论

相关推荐

    使用betwixt进行xml与java类之间的互转解析--代码

    本篇文章将深入探讨如何使用Betwixt库实现XML与Java类之间的互转解析。 首先,我们需要理解Betwixt的基本概念。Betwixt是一个XML绑定工具,它允许开发者通过注解或XML配置文件来映射XML结构与Java类的属性。这种...

    使用Betwixt将XML转为JAVA Bean(内有JAR包)

    这里,我们创建了一个`BeanReader`,注册了`Person`和`Address`类,然后解析XML输入流,生成相应的Java Bean实例。 在实际应用中,`TestBetwixt`可能包含具体的测试代码,用于验证上述转换过程是否正确。测试通常会...

    XML操作之betwixt

    4. **XML到Java对象**:使用`BeanWriter`将XML文档解析为Java对象。`BeanWriter`会在指定的输出流或文件上写入XML,将XML数据转换为Java对象。 5. **Java对象到XML**:使用`BeanReader`将Java对象转换为XML。`...

    betwixt文件解析bai

    标题"betwixt文件解析"指的是使用Betwixt库来解析XML文件,并将其中的数据映射到Java对象上。Betwixt通过自动的注解处理和类的反射机制,能够自动构建XML与Java对象之间的对应关系。这种方式极大地减少了开发者手动...

    java使用commons-betwixt 实现bean与xml互转

    这将从"person.xml"文件中解析数据,并创建一个新的Person对象。 五、自定义XML标签和属性 Betwixt允许你通过使用`@xml`注解来自定义XML标签和属性的映射。例如: ```java @Xml(name="person", attributes={"id"}) ...

    javabean和xml互相转换工具类以及jar包

    - **DOM解析**:解析XML文档,创建一个Document对象,然后遍历XML节点,调用JavaBean的setter方法设置属性值。 - **SAX(Simple API for XML)**:非回溯事件驱动的解析方式,根据XML事件调用相应的处理函数,逐个...

    xml转换java对象

    通过使用Betwixt,开发者可以轻松地将XML文档解析为Java对象,或者将Java对象序列化为XML文档。这极大地简化了数据交换和持久化的过程。 在本例子中,我们使用的版本是`commons-betwixt-0.8.jar`。这个库包含了一组...

    commons-betwixt-0.8的相关文件

    在实际应用中,Apache Commons Betwixt可以用于构建Web服务、持久化层或者配置文件的解析。由于0.8版本相对较旧,它可能不包含后来版本中的一些增强特性,例如更好的性能优化、对Java新特性的支持或更丰富的映射选项...

    commons-betwixt-0.5-src.zip_ObjectStringConvert_commons-betwixt_

    这种映射机制使得开发者无需手动编写大量的XML解析和序列化代码,降低了出错的可能性,也提高了代码的可读性和可维护性。 在"commons-betwixt-0.5-src.zip"这个压缩包中,包含了源代码,你可以深入研究其内部实现,...

    betwixt技术

    这样,开发者就不需要手动解析XML来创建或更新Java对象,也不需要编写大量代码去序列化Java对象为XML。 在使用Betwixt时,首先你需要定义Java类,并在类或者属性上添加特殊的注解来指示它们与XML元素的对应关系。...

    webservice接口开发obj2xml.zip

    `XMLReader`从XML输入流中读取,`XMLBeanInfo`则用来解析XML并创建相应的Java对象实例。 在提供的`01obj2xml`文件中,很可能是包含了演示如何进行这些操作的代码。该文件可能包括了以下内容: - 一个简单的Java对象...

    Websiteconfig

    - **commons-digester-2.1.jar**:Apache Commons Digester是一个处理XML文档的工具,通过定义规则链,可以在解析XML时自动创建和配置Java对象,非常适合于从XML配置文件中构建对象模型。 - **commons-logging-...

    MDDwsClient(BetwixtXML的使用)

    这样,开发者可以轻松地处理这些数据,而无需手动解析XML。 ### 3. 使用步骤 使用BetwixtXML的步骤包括以下几个关键部分: #### (1) 创建Java类 首先,定义要序列化或反序列化的Java类。这些类通常包含与XML元素...

    Jakarta Commons Online Bookshelf

    Digester模块提供了一种基于事件驱动的XML解析机制,它通过监听XML解析器产生的事件,执行相应的处理器方法。这种模式非常适合于复杂的XML文档解析任务,尤其是在需要将XML数据转换为Java对象模型的情况下。 ### 5....

    apache-commons源码及jar文件

    Commons-Digester 是一个 XML-Java对象的映射工具,用于解析 XML配置文件. Discovery Commons-Discovery 提供工具来定位资源 (包括类) ,通过使用各种模式来映射服务/引用名称和资源名称。. EL Commons-EL 提供在...

    Java序列化技术的探讨.pdf

    JAXB提供两种主要特性:将一个Java对象序列化为XML,以及反向操作,将XML解析成Java对象。当XML格式复杂且经常变化时,JAXB特别有用。在这种情况下,经常修改XML模板,可以使用JAXB来生成Java类,并将XML文档映射到...

    apache web组件使用

    - **Digester**:解析XML文档,并根据预定义的规则自动创建和配置Java对象。 - **Jelly**:基于标签库的脚本语言,用于生成XML或Java代码。 - **JXPath**:使用XPath表达式在Java对象模型(如Map和JavaBean)中...

    jar包介绍大全

    Commons Digester 提供了一个简单易用的框架来解析XML文档并映射到Java对象。对于需要处理XML数据的应用程序而言,它极大地简化了开发过程。 #### Commons Lang (commons-lang.jar) Commons Lang 是一个实用工具库...

    commons所有jar包

    3. **commons-betwixt-0.8.zip**:Betwixt是一个对象到XML绑定工具,它可以自动将Java对象序列化为XML,并从XML反序列化回对象,帮助开发者处理XML数据。 4. **commons-lang-2.4-bin.zip**:Lang提供了一些在Java...

Global site tag (gtag.js) - Google Analytics