| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
cey6
9年前发布

强大和灵活的处理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

最后给大家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));                }            }        }  

 本文由用户 cey6 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
 转载本站原创文章,请注明出处,并保留原始链接、图片水印。
 本站是一个以用户分享为主的开源技术平台,欢迎各类分享!
 本文地址:https://www.open-open.com/lib/view/open1433127781416.html
GenXDM XML操作类库