推荐一个强大和灵活的处理XML的开源框架---GenXDM
来源:互联网 发布:矩阵论 方保镕 答案pdf 编辑:程序博客网 时间:2024/06/04 18:56
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
最后给大家2个简单的例子,通过GenXDM生成一个XML数据,非常的灵活和简单,可以还可以兼容不同的XML的实现的框架。希望能对大家起到抛砖引玉的作用。
(1) 基于org.w3c.dom.Node的实现,生成一个XML的数据
import java.util.Iterator;import org.genxdm.ProcessingContext;import org.genxdm.bridge.dom.DomProcessingContext;import org.genxdm.bridgekit.filters.FilteredFragmentBuilder;import org.w3c.dom.Document;import org.w3c.dom.Node;public class CreateDom {public static void main(String[] args) throws Exception {ProcessingContext<Node> context = new DomProcessingContext();FilteredFragmentBuilder<Node> builder = (FilteredFragmentBuilder)context.newFragmentBuilder();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.namespace("xlssss", "http://localhost111");builder.attribute("", "attr", "", "value", null);builder.text("text");builder.endElement();builder.endDocument();Document doc = (Document)builder.getNode();System.out.println(doc);Iterable<Node> ns = context.getModel().getChildElements(doc);Iterator<Node> iter = ns.iterator();while(iter.hasNext()){Node n = iter.next();System.out.println(context.getModel().getLocalName(n));}WriteDom2File.write2File(context, doc, "dddd.xml");}}
(2) 基于org.apache.axiom.om的实现,生成一个XML的数据
import java.util.Iterator;import org.apache.axiom.om.impl.llom.factory.OMLinkedListImplFactory;import org.genxdm.ProcessingContext;import org.genxdm.bridge.axiom.AxiomProcessingContext;import org.genxdm.io.FragmentBuilder;public class CreateDom {public static void main(String[] args) throws Exception {ProcessingContext<Object> context = new AxiomProcessingContext(new OMLinkedListImplFactory());FragmentBuilder<Object> builder = context.newFragmentBuilder();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();Object doc = builder.getNode();System.out.println(doc);Iterable<Object> ns = context.getModel().getChildElements(doc);Iterator<Object> iter = ns.iterator();while (iter.hasNext()) {Object n = iter.next();System.out.println(context.getModel().getLocalName(n));}}}
另外,大家可以到下面的地址的去下载参考书籍,写的非常的好。
http://www.genxdm.org/book/index.html
1 2
- 推荐一个强大和灵活的处理XML的开源框架---GenXDM
- [开源框架推荐]VTD-XML:世界上最快的XML处理框架
- [开源框架推荐]VTD-XML:世界上最快的XML处理框架 .
- [转载][开源框架推荐]VTD-XML:世界上最快的XML处理框架
- 值得推荐的C/C++框架和库,包含很多开源项目 (真的很强大)
- 值得推荐的C/C++框架和库,包含很多开源项目 (真的很强大)
- 灵活强大的参数类
- 灵活、易用、强大的TS切片和M3U8构建工具
- iOS:GPUImage强大的图像处理框架
- 值得推荐的C/C++框架和库 (真的很强大)
- 值得推荐的C/C++框架和库 (真的很强大)
- 值得推荐的C/C++框架和库 (真的很强大)
- 值得推荐的C/C++框架和库 (真的很强大)
- 值得推荐的C/C++框架和库 (真的很强大)
- 值得推荐的C/C++框架和库 (真的很强大)
- 值得推荐的C/C++框架和库 (真的很强大)
- 值得推荐的C/C++框架和库 (真的很强大)
- 值得推荐的C/C++框架和库 (真的很强大)
- Linux内核Crash分析
- .NET下使用JQuery实现登录
- HttpModule注册说明
- cocos2d-x CCControlPotentiometer 圆形音量按钮
- 数字在排序数组中出现的次数
- 推荐一个强大和灵活的处理XML的开源框架---GenXDM
- 利用反射加载配置文件中的类动态生成集合
- Linux gcc for 循环中 i=i++ 会造成死循环问题及 ++i / i++ 汇编分析
- 90前后大部分人都会经历的事
- PreparedStatement下中文乱码的问题
- Findbug在项目中的运用--提高代码质量
- Java泛型详解
- 阿里云服务器web环境Apache+Nginx重新换回Tengine
- Pat(Basic Level)Practice--1028 (人口普查)