推荐一个强大和灵活的处理XML的开源框架---GenXDM

GenXDM是非常著名的中间件软件厂商TIBCO公司贡献一个出来XML的一个非常灵活和强大的开源框架(基于Apache的License),其提供了一套机制和接口,把所有的DOM的操作和解析模型通过一种统一的方式来实现。因此,GenXDM框架本身提供了AxiomProcessingContext,DomProcessingContext和XmlNodeContext的一套处理机制。其实GenXDM本身只是一个壳子,必选由相应的Axiom,Dom或者XmlNode的配合起来,才能进行XML文件的create,update和Read。大家可以从下面的地址去下载其源代码:http://www.genxdm.org/source-repository.html

最后给大家一个简单的例子,通过GenXDM生成一个XML数据,非常的灵活和简单,可以还可以兼容不同的XML的实现的框架。希望能对大家起到抛砖引玉的作用。

import java.util.Iterator;
import org.genxdm.ProcessingContext;
import org.genxdm.io.FragmentBuilder;
import com.tibco.genxdm.bridge.xinode.XiProcessingContext;
import com.tibco.xml.datamodel.XiNode;
public class CreateDom {
        public static void main(String[] args) throws Exception {
               ProcessingContext<XiNode> context = new XiProcessingContext();
               FragmentBuilder<XiNode> builder = context.newFragmentBuilder();
                /*
                * <? xml version="1.0" encoding="UTF-8"?>
         <!--comment-->
         <?pi data?>
         <element xmlns ="http://localhost" attr ="value">text</element>
                */
                final String LF = "\n" ;
               builder.startDocument( null , null );
               builder.text(LF);
               builder.comment( "comment" );
               builder.text(LF);
               builder.processingInstruction( "pi" , "data" );
               builder.startElement( "http://localhost" , "element" , "" );
               builder.namespace( "" , " http://localhost " );
               builder.attribute( "" , "attr" , "" , "value" , null );
               builder.text( "text" );
               builder.endElement();
               builder.endDocument();
               XiNode doc = builder.getNode();
               System. out .println(doc);
               System. out .println( "++++++++++++++=====" );
               System. out .println( "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq" );
               String str=com.tibco.xml.datamodel.helpers.XiSerializer. serialize (doc);
               System. out .println(str);
               System. out .println( "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq" );
               Iterable<XiNode> ns = context.getModel().getChildElements(doc);
               Iterator<XiNode> iter = ns.iterator();
                while (iter.hasNext()) {
                       XiNode n = iter.next();
                       System. out .println(context.getModel().getLocalName(n));
               }
       }
}

另外,大家可以到下面的地址的去下载参考书籍,写的非常的好。

http://www.genxdm.org/book/index.html

时间: 2024-10-15 14:19:24

推荐一个强大和灵活的处理XML的开源框架---GenXDM的相关文章

强大而灵活的字体图标替代库iconfont

   前言概述 在开发网页制作过程中通常需要一些网页小图标,前端需要PS切图,将单个小图标icon组合成CSS雪碧图过程中,需要一些时间和精力; 如果网页制作中需要的小图标icon有一套css框架库集成起来将大大提高开发效率于是就有了接下来要说的字体图标库fontAwesome.iconfont    fontAwesome 图标字体库与CSS框架 fontAwesome 官网http://fontawesome.dashgame.com目前Font Awesome最新版本version是4.7

毕加索的艺术——Picasso,一个强大的Android图片下载缓存库,OkHttpUtils的使用,二次封装PicassoUtils实现微信精选

毕加索的艺术--Picasso,一个强大的Android图片下载缓存库,OkHttpUtils的使用,二次封装PicassoUtils实现微信精选 官网: http://square.github.io/picasso/ 我们在上篇OkHttp的时候说过这个Picasso,学名毕加索,是Square公司开源的一个Android图形缓存库,而且使用起来也是非常的简单,只要一行代码就轻松搞定了,你会问,为什么不介绍一下Glide?其实Glide我有时间也是会介绍的,刚好上篇我们用到了Picasso,

(转)推荐一个在Linux/Unix上架设ASP.NET的 WEB服务器--Jexus

在Linux/Unix上架设ASP.NET WEB服务器,有两个可选方式,一种是Mono+XSP,一种是Mono+Jexus,其它的方式,比如 Apache+mod_mono.Nginx+FastCgi 等等,其实质与XSP并无区别,都是使用Mono所提供的ASP.NET处理模块:Mono.WebServer名字空间实现对ASP.NET网站的支 持.Jexus不但具有跨平台ASP.NET服务器这样的标志性特征,同时还拥有内核级的安全监控.入侵检测.URL重写.无文件路由等一系列重要功能和 专有特

推荐一个orm框架--jrom,面向对象的可以自动创表超轻量级orm

今天给大家推荐的是一个超轻量级的orm,可以根据java实体自动生成和修改表结构,提供BasicDaoImpl<T,ID>作为抽象父类,通过泛型和反射可提供子类的增删改查和分页功能.通过Filter和Order等面向对象的API进行条件查询和分页,本框架基于Spring配置,可以无缝隙和Spring集成.是想用hibernate或jpa但又不像学习他的繁琐api,想用mybatis但又不想写sql和创建表结构的程序猿的不二选择!!!! 不废话了,源码地址:https://github.com/

一个强大的Java开源遥感处理软件(库)---Beam

1.Beam简介 为了在Hadoop中可以序列化HDF文件,在各种搜索之后,无意中发现了一个强大的Java开源软件,它就是Beam. 对于从事遥感的研究者来说,可以通过安装Beam,将它当成一个强大开源的遥感处理软件使用.虽然没有envi那么好用,还马马虎虎过得去.至少安装Beam,不用授权文件去破解~ 对于遥感软件开发人员来说,Beam的库简直一大利器!!! 用Java实现什么重投影.波段运算.主成分分析.图像裁剪.图像镶嵌,创建直方图,五花八门.各式各样.繁简不一的遥感操作,对它来说都是一碟

推荐一个文献翻译软件--Deja Vu X

首先我的这篇博客推荐的软件并不是你认为翻译准确度有多高的软件,如果是这样的话就不用往下看了,免得浪费时间,只是一个对于翻译文献很方便的工具,方面在哪请看下文. 我是不会告诉你凡事用过这个软件的人都说好的. 如果你要写英语文章,而又无法直接成文,往往需要先写出来汉语(或者用汉语列出文章的大纲),那么接下来的事情你可能就需要将你的中文文章翻译成英语了,可能大家常常用的是有道词典.金山词霸.谷歌翻译.百度翻译等,但是用这些翻译软件或者在线翻译时,常常需要将你要翻译的内容粘贴到这些软件或者在线翻译的网页

推荐一个学通信技术的网站,百度“51学通信”第一个就是

推荐一个学通信技术的网站www.51xuetongxin.com,百度"51学通信"第一个就是.这个网站有大量的通信技术在线视频,都是从业很多年的通信人士录制的.并且针对入门者设置了有通信技术入门学习课程.包括IMS.IP网络技术.EPC.2/3/4G技术等等.非常全面.强烈推荐.而且是免费的哦.

推荐一个Xcode插件: KSImageNamed (自动补全图片文件名称, 并显示图片大小)

http://www.csdn.net/article/2014-05-04/2819586-the-best-xcode-plugins 5. KSImageNamed KSImageNamed是一款能够帮助开发者在Xcode中自动补全图片文件名称的插件,其开发者Kent Sutherland来自美国波士顿.KSImageNamed支持NSImage和UIImage,当开发者写到"[UIImage imaged:"时,便会自动将项目中的图片名称提示出来.此外,KSImageNamed

推荐一个不错的抓取匹配源码的正则表达式网站

在线网址:http://regexpal.com/ 本人用于抓取匹配的源码,更多功能自己研究. 推荐一个不错的抓取匹配源码的正则表达式网站,布布扣,bubuko.com