可以是SAX和DOM4j配合,SAX用于生成XML(据称是DOM4j是千倍),DOM4j解析模板文件,不知道楼主需求如何?

解决方案 »

  1.   

    DOM,SAX两种,其中SAX是事件驱动的,DOM是直接将XML转换成TREE型。对应SAXBuilder 和 DOMBuilder。SAXBuilder用sax解析器从文件中构造文档。SAXBuilder侦听sax事件并从内存中建立一个相应的文档。这种方式非常快。DOMBuilder是另一种可选的方式,它从一个存在的org.w3c.dom.Document对象中建立JDOM文档。它允许jdom轻松的和构建DOM树的工具实现接口。
    给个saxbuiler的例子:你可以自己选择解析器
    import java.io.*;
    import org.jdom.*;
    import org.jdom.input.*;
    import org.jdom.output.*;
    public class PrettyPrinter {
       public static void main(String[] args) {
            // Assume filename argument
            String filename = args[0];
            try {
                /* 或者org.jdom.input.SAXBuilder builder =new                         
    SAXBuilderorg.apache.xerces.parsers.SAXParser",false);可指定解析器
                SAXBuilder builder = new SAXBuilder();//使用缺省
                // Create the document
                Document doc = builder.build(new File(filename));
                // Output the document, use standard formatter
                XMLOutputter fmt = new XMLOutputter();
                fmt.output(doc, System.out);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
      

  2.   

    java里面标准接口 都有了,选几个是实现的 jar包就可以了。
    比如 Xerces就是一个。
      

  3.   

    各种开源的解析器多了,java自带的也有,都差不多.
      

  4.   

    比如在DOM和SAX间做选择
    我的标准是:
    SAX对内存消耗比较小,采取触发事件的方法,也就是你读过了这个标记后就不可能再回头处理这个了,另外SAX不能对xml文件进行处理而DOM呢?
      内存消耗较大,因为读入的内容全保存在内存中,但是你可以灵活的进行修改,随便什么节点都可以比如你拿到一个20M的文件,你只需要提取一部分内存,那么肯定是使用SAX而不是DOM了!~