`
superheizai
  • 浏览: 65498 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

强大的XOM包——simple-xml

阅读更多
simple-xml是一个xml和对象互转操作包,官方地址在这里:
http://simple.sourceforge.net/
上面提供了详细的说明和操作方法,非常强大。
这里转载下熔岩同学提供的例子,自己也从这里学到了很多,:
package test1; 

import org.simpleframework.xml.*; 
import org.simpleframework.xml.core.Persister; 

import java.io.File; 
import java.util.List; 
import java.util.ArrayList; 

@Root 
public class Example { 

        @Element 
        private String text; 

        @Attribute 
        private int index; 

        @Element() 
        private boolean flag; 

        @Element(required = false) 
        private Integer num; 

        @ElementList(required = false) 
        private List<String> slist = new ArrayList<String>(); 

        public Example() { 
                super(); 
        } 

        public Example(String text, int index) { 
                this.text = text; 
                this.index = index; 
//                slist.add("sdf"); 
        } 

        public String getMessage() { 
                return text; 
        } 

        public int getId() { 
                return index; 
        } 


        public static void main(String[] args) throws Exception { 
                Serializer serializer = new Persister(); 
                Example example = new Example("Example message", 123); 
                File result = new File("outxml/example.xml"); 

                serializer.write(example, result); 


                Example _obj = serializer.read(Example.class, result); 
                System.out.println(_obj.getMessage()); 


        } 
}


输入的文件内容:
<example index="123">
     <text>Example message</text>
     <flag>false</flag>
     <slist class="java.util.ArrayList"/>
</example>

控制台输出信息:
Example message

Process finished with exit code 0

第二个例子:
@Root 
public class Customer { 
        @Attribute(required = true) 
        private Long id; 
        @Element(required = true) 
        private String name; 
        @Element(required = false) 
        private Address address; 
        @ElementList(required = false,    type = Order.class) 
        private List<Order> orderList = new ArrayList<Order>(0); 

        public Customer() { 
        } 

        public Customer(Long id, String name) { 
                this.id = id; 
                this.name = name; 
        } 

@Root 
public class Address { 
        @Element(required = true) 
        private String code; 
        @Element 
        private String street; 
        @Element 
        private boolean isopen; 

        public Address() { 
        } 

        public Address(String code, String street, boolean isopen) { 
                this.code = code; 
                this.street = street; 
                this.isopen = isopen; 
        } 


@Root 
public class Order { 
        @Attribute(required = true) 
        private Long id; 
        @Element(required = true) 
        private Date cdate; 
        @ElementList(required = false, type = Item.class) 
        private List<Item> itemList = new ArrayList<Item>(0); 

        public Order() { 
        } 

        public Order(Long id, Date cdate) { 
                this.id = id; 
                this.cdate = cdate; 
        } 

@Root 
public class Item { 
        @Attribute 
        private Long id; 
        @Element(required = true) 
        private int num; 
        @Element(required = false) 
        private BigDecimal price; 

        public Item() { 
        } 

        public Item(int num, Long id) { 
                this.num = num; 
                this.id = id; 
        } 


package test; 

import org.simpleframework.xml.Serializer; 
import org.simpleframework.xml.core.Persister; 

import java.util.Date; 
import java.io.File; 

/** 
* Created by IntelliJ IDEA. 
* 
* @author leizhimin 2008-12-29 22:05:16 
*/ 
public class TestSimple { 
        public static void main(String[] args) throws Exception { 
                Customer customer = new Customer(111L, "张三"); 
                Order order1 = new Order(1L, new Date()); 
                Order order2 = new Order(2L, new Date()); 
                Item item11 = new Item(1, 11L); 
                Item item21 = new Item(2, 21L); 
                Address address = new Address("450000", "瑞达路XX#", true); 

                customer.setAddress(address); 
                customer.getOrderList().add(order1); 
                customer.getOrderList().add(order2); 
                order1.getItemList().add(item11); 
                order2.getItemList().add(item21); 


                Serializer serializer = new Persister(); 
                File result = new File("outxml/customer.xml"); 

                serializer.write(customer, result); 

                Customer _obj = serializer.read(Customer.class, result); 
                System.out.println(_obj.getName()); 
                System.out.println(_obj.getOrderList().get(0).getCdate()); 

        } 
}




生成的文件:
<customer id="111">
     <name>张三</name>
     <address>
            <code>450000</code>
            <street>瑞达路XX#</street>
            <isopen>true</isopen>
     </address>
     <orderList class="java.util.ArrayList">
            <order id="1">
                 <cdate>2008-12-29 23:36:36.390 CST</cdate>
                 <itemList class="java.util.ArrayList">
                        <item id="11">
                             <num>1</num>
                        </item>
                 </itemList>
            </order>
            <order id="2">
                 <cdate>2008-12-29 23:36:36.390 CST</cdate>
                 <itemList class="java.util.ArrayList">
                        <item id="21">
                             <num>2</num>
                        </item>
                 </itemList>
            </order>
     </orderList>
</customer>

控制台输出的内容:
张三
Mon Dec 29 23:36:36 CST 2008

Process finished with exit code 0
分享到:
评论
1 楼 wubill 2011-03-07  
这个和另个XOM(http://www.xom.nu/) 是什么关系?

相关推荐

    simple-xml-safe-2.7.1-API文档-中文版.zip

    赠送jar包:simple-xml-safe-2.7.1.jar; 赠送原API文档:simple-xml-safe-2.7.1-javadoc.jar; 赠送源代码:simple-xml-safe-2.7.1-sources.jar; 赠送Maven依赖信息文件:simple-xml-safe-2.7.1.pom; 包含翻译后...

    simple-xml-safe-2.7.1.jar

    simple-xml-safe-2.7.1.jar

    simple-xml-2.6.2.jar

    simple-xml-2.6.2.jar主要用于模拟报文的类库,有需要的可以下载

    simple-xml jar包

    Simple-XML是一个强大的XML处理库,它的注解机制让XML解析和序列化变得直观且高效。无论是在小型项目还是大型项目中,Simple-XML都能提供出色的性能和易用性,帮助开发者更专注于业务逻辑,而不是XML的繁琐操作。在...

    simple-xml-2.7.1

    总的来说,Simple-XML是一个强大且易于使用的XML处理工具,适用于那些希望以简单方式处理XML的Java开发者。其高效的性能和直观的API设计,使得它在许多项目中成为首选的XML解析库。通过深入理解和熟练应用Simple-XML...

    每天分享几个python项目 —— simple-balloon-shooter-game-using-python

    【标题】"每天分享几个python项目 —— simple-balloon-shooter-game-using-python" 提供了一个实践性的Python项目,即创建一个简单的气球射击游戏。这个项目可以帮助初学者和有一定经验的开发者通过实际操作来加深...

    每天分享几个python项目 —— simple-dice-roll-game-using-python

    标题 "每天分享几个python项目 —— simple-dice-roll-game-using-python" 暗示我们要讨论的是一个使用Python编程语言实现的简单骰子游戏。在这个项目中,用户可以模拟掷骰子,体验游戏的乐趣,同时也能够学习到...

    每天分享几个python项目 —— simple-connect-four-game-using-python

    【标题】"每天分享几个python项目 —— simple-connect-four-game-using-python"是一个关于使用Python开发简单四子连珠游戏的实战教程。这个项目旨在帮助学习者掌握Python编程基础,特别是对于游戏开发感兴趣的人群...

    simple-xml-2.3.4.jar

    simple-xml-2.3.4.jar非常好用的序列化java类的工具类包

    simple-xml2object-1.0.0

    《简单实用:XML与对象之间的转换工具——simple-xml2object-1.0.0》 在信息技术领域,数据交换和存储的方式多种多样,其中XML(eXtensible Markup Language)因其结构化、可扩展性及跨平台特性,被广泛用于数据...

    simple-xml-2.7.1.rar

    总结,Simple XML库通过提供简洁的API和强大的功能,使得XML处理变得简单而高效。它适用于需要快速开发和维护XML解析逻辑的项目,极大地提升了开发者的生产力。通过熟练掌握Simple XML库,开发者能够更加自如地应对...

    每天分享几个python项目 —— simple-mobile-contact-management-system

    本项目名为"simple-mobile-contact-management-system",是一个基于Python开发的简易移动联系人管理系统。这个系统旨在帮助用户方便地管理他们的个人联系信息,包括添加、删除、查找和编辑联系人。它展示了Python在...

    每天分享几个python项目 —— simple-math-app-using-python

    在本项目"simple-math-app-using-python"中,我们将探讨如何使用Python开发一个简单的数学应用程序。这个项目适合初学者和有经验的开发者,它能够帮助巩固Python基础,并且实践编程技巧,尤其是对于后端开发的理解。...

    每天分享几个python项目 —— simple-quiz-system-project-in-python

    本项目"simple-quiz-system-project-in-python"旨在帮助初学者和有一定基础的开发者实践Python后端开发,通过构建一个简单的问答系统来巩固编程知识。 项目的核心目标是创建一个交互式的问答程序,用户可以参与答题...

    simple-xml-safe-2.7.1-API文档-中英对照版.zip

    赠送jar包:simple-xml-safe-2.7.1.jar; 赠送原API文档:simple-xml-safe-2.7.1-javadoc.jar; 赠送源代码:simple-xml-safe-2.7.1-sources.jar; 赠送Maven依赖信息文件:simple-xml-safe-2.7.1.pom; 包含翻译后...

    每天分享几个python项目 —— simple-library-system-using-python

    本项目“simple-library-system-using-python”就是一个很好的示例,它展示了如何利用Python来构建一个简单的图书管理系统。 这个系统可能包括以下功能: 1. **图书管理**:系统应能添加、删除和更新图书信息,如...

    每天分享几个python项目 —— simple-stick-boy-run-game-using-python.zip

    Python作为一款强大的、易学习的开发语言,常用于初学者入门编程或者快速原型开发。在后端开发中,Python也有诸如Django和Flask等流行的Web框架,但在这个项目中,我们将重点放在其在游戏开发中的应用。 【描述】...

    每天分享几个python项目 —— simple-multiplayer-game-using-python

    python项目实战

    每天分享几个python项目 —— simple-peg-game-using-python

    python项目实战

    simple-XML-Class-test.rar_simple-xml_xml

    在"simple-xml_xml"这个场景下,我们假设有一个名为`SimpleXmlProcessor`的类,它包含了以上所述的功能。这个类可能有以下方法: 1. **解析XML文件**:`parseXmlFile(String filePath)` - 使用DOM或SAX解析器加载...

Global site tag (gtag.js) - Google Analytics