XML常用的sax dom解析
XStream 的网站
xstream.codehaus.org/
看到JE上人说用XStream对XML读写不错,去看了下,在xstream的网站上有很详细的例程,这里就不多说了,都能看明白
XStream可以根据需要,写出想要的XML 的格式,
例如常见的 Hibernate 一个pojo类的配置文件 如下
<hibernate-mapping package="com"><class table="novem" name="Person"><id type="integer" column="ID" name="id">
xml 代码
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
- <hibernate-mapping package="com">
- <class name="Person" table="novem">
- <id name="id" column="ID" type="integer">
- <generator class="increment"/>
- </id>
- <property name="name" column="NAME"/>
- <property name="email" column="EMAIL"/>
- </class>
- </hibernate-mapping>
<property column="NAME" name="name">
</property>
生成代码如下:
</id></class></hibernate-mapping>
java 代码
- import java.io.BufferedWriter;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.List;
-
- import com.thoughtworks.xstream.XStream;
- import com.thoughtworks.xstream.io.xml.DomDriver;
-
- public class createHbmXmlTest {
-
-
-
-
- public static void main(String[] args) {
-
- XStream xstream = new XStream(new DomDriver());
- try{
- File write = new File("d:\\Data\\Person.hbm.xml");
- BufferedWriter brWriter= new BufferedWriter(new FileWriter(write));
-
- String xmlHead="\n\n";
- String xmlBody;
-
- xstream.alias("hibernate-mapping", HibernateMapping.class);
- xstream.alias("class", Class.class);
- xstream.alias("property", Property.class);
- xstream.aliasAttribute("class","generatorClass");
- xstream.aliasAttribute("package", "tpackage");
- xstream.aliasField("class", HibernateMapping.class, "tclass");
-
- xstream.addImplicitCollection(Class.class,"properties");
- xstream.addImplicitCollection(Generator.class, "generatorClass");
-
- List proList=new ArrayList ();
- Property pro1=new Property();
- pro1.setName("name");
- pro1.setColumn("NAME");
- Property pro2=new Property();
- pro2.setName("email");
- pro2.setColumn("EMAIL");
- proList.add(pro1);
- proList.add(pro2);
-
- Generator gen = new Generator("increment");
- ID id=new ID("id","ID","integer",gen);
-
- Class hClass=new Class("Person","novem");
- hClass.setId(id);
- hClass.setProperties(proList);
-
- HibernateMapping hMapping= new HibernateMapping("com",hClass);
-
-
- xstream.useAttributeFor(ID.class,"name");
- xstream.useAttributeFor(ID.class, "column");
- xstream.useAttributeFor(ID.class, "type");
- xstream.useAttributeFor(Class.class, "name");
- xstream.useAttributeFor(Class.class, "table");
- xstream.useAttributeFor(Property.class, "name");
- xstream.useAttributeFor(Property.class, "column");
- xstream.useAttributeFor(Generator.class, "generatorClass");
- xstream.useAttributeFor(HibernateMapping.class, "tpackage");
- xstream.registerConverter(new PropertyConverter());
-
- xmlBody=xstream.toXML(hMapping);
- System.out.println(xmlHead+xmlBody);
-
- brWriter.write(xmlHead+xmlBody);
- brWriter.close();
- }catch(FileNotFoundException e){
- System.out.println(e);
- }catch(IOException e){
- e.printStackTrace();
- }
- }
-
- }
<hibernate-mapping package="com"><class name="Person" table="novem"><id name="id" column="ID" type="integer"><generator class="increment"></generator>
<property name="name" column="NAME"></property>
<property>
<property> </property>
</property>
</id></class></hibernate-mapping>
分享到:
相关推荐
在IT行业中,SpringMVC是Java企业级应用开发中广泛使用的Web MVC框架,它提供了强大的模型-视图-控制器架构来构建可...通过理解和掌握这一技术,开发者能够高效地处理XML数据的转换和传递,提升应用的功能和用户体验。
在压缩包文件"xsdemo"中,可能包含了上述示例的完整源代码,你可以下载并运行来体验XStream的实际操作。通过实践,你会更熟悉如何在各种场景下利用XStream进行对象和XML之间的转换。 总之,XStream是一个强大的工具...
《XStream 1.3.1:XML解析的利器》 在IT领域,XML作为一种标准的数据交换格式,广泛应用于各种应用程序之间。...通过不断地学习和实践,你可以发掘出更多XStream在实际项目中的应用技巧,提升你的编程体验。
总的来说,XStream的不同版本代表了其在XML处理领域的持续进步,从基本的序列化和反序列化功能,到对Java新特性的支持,再到安全性提升和性能优化,XStream始终致力于为开发者提供更好的XML处理体验。随着版本的迭代...
Media File XStream是一款开源的XBMSP服务器,它是...通过提供的脚本和可执行文件,用户可以轻松安装、配置和管理服务器,享受自定义的媒体流体验。开源社区的支持则确保了软件的持续更新和优化,适应用户的各种需求。
**Ajax版无刷新显示最新新闻**是Web开发中一种提高用户体验的技术,它允许网页在不重新加载整个页面的情况下,仅更新部分数据。本项目利用JavaScript、Java、Servlet和XStream库来实现这一功能,旨在创建一个高效且...
这款应用的设计理念是将不同的音乐体验整合在一起,无论是本地存储的音乐文件还是在线流媒体服务,XStream都能轻松应对。 在技术实现上,XStream采用了TypeScript作为主要的开发语言。TypeScript是JavaScript的一个...
在Android开发中,数据序列化和反序列化是常见的需求,比如保存用户偏好、网络通信时的数据传输等。...通过理解其基本原理和用法,开发者可以有效地解决XML和对象转换的问题,提升应用的效率和用户体验。
4. **XStream**:虽然在标签中提到,但在文件名列表中未直接体现,但XStream是一个Java库,用于XML的序列化和反序列化。在Android开发中,XStream可以用于将对象转换为XML格式存储,或者将XML数据恢复为对象。这在...
这个例子可能会展示如何通过重写GridView的onScroll事件,并结合自定义的ViewGroup,来实现这种效果,以达到更好的用户体验。 在标签中提到的“3D图片浏览”可能是一个额外的示例,虽然在描述中没有具体提及。在...
这些技术都是Android应用开发中常见的需求,对提升用户体验和应用功能具有积极的作用。 首先,我们来看xUtils的断点下载功能。xUtils是一个轻量级的Android开发框架,它整合了网络请求、图片加载、数据库操作等多个...
在移动开发App的实践中,了解和掌握数据序列化技术,尤其是像AndroidXstream这样的库,能够帮助开发者更高效地处理数据存储和交换,提升应用的用户体验。通过分析和学习这个源码,可以加深对Android应用数据管理的...
在IT行业中,Web开发是不可或缺的一部分,而Struts2作为一款强大的MVC...这些技术的结合,不仅提供了良好的用户体验,还确保了数据的完整性和安全性。对于开发者来说,理解和掌握这些技术对于提升Web开发技能至关重要。
这种方式有助于提升大型Web应用的性能和用户体验,同时降低了服务器的资源消耗。在实际项目中,根据具体需求和性能测试结果,可以选择合适的序列化器(如Kryo或XStream)以及配置memcached的最佳实践,以达到最优...
在IT行业中,尤其是在Java Web应用开发中,session共享是一个重要的课题。当多个应用服务器需要共享用户的session信息时,可以借助...在分布式环境中,这种session共享机制对于提升用户体验和系统的可扩展性至关重要。
在SSH2整合的示例中,Ajax可能被用来实现页面无刷新的增删改查操作,提升用户体验。 7. **SQL**:SQL(Structured Query Language)是用于管理关系数据库的标准语言。在这个实例中,开发者会编写SQL语句来创建、...
而session共享则涉及到在多台服务器之间同步用户会话状态,确保用户在切换服务器时仍能保持一致的体验。 **知识点详解:** 1. **Memcached基础**:Memcached是一个开源的、分布式的内存对象缓存系统,用于存储临时...
TestXStream.java可能是一个测试XStream库的类,XStream是一个用于Java的XML序列化库,能够将Java对象转换为XML,反之亦然。Person、Profile和Address可能是这个项目中的核心类,分别代表人、个人资料和地址等概念。...